- 浏览: 203597 次
- 性别:
- 来自: 芜湖
文章分类
- 全部博客 (139)
- 软件 (0)
- Pattern (6)
- CSDN导入 (19)
- Struts (3)
- [网站分类]1.网站首页原创 (27)
- [网站分类]6.转载区 (4)
- Hibernate (10)
- Error (8)
- [网站分类]2.Java新手区 (20)
- Java (8)
- [网站分类]4.其他技术区 (10)
- Web (1)
- C++ (2)
- Algorithm (4)
- Linux (2)
- Skill (1)
- Tech (2)
- Note (2)
- [网站分类]3.非技术区 (1)
- Database (1)
- Winty (7)
- [网站分类]1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (0)
最新评论
-
haohao-xuexi02:
很不错哦。
O'Reilly cos上传组件的使用(1/3) - 上传文件 -
yoin528:
useUnicode=true&charact ...
[原]向MySQL数据库插入Blob数据的问题 -
xiaoqing20:
下载来看看!呵呵
[原]Struts2类型转换 -
xiaoqing20:
[原]Struts2类型转换
说数据持久化,初学者可能还不太懂;但要说把数据保存到文件,这谁都懂了。为什么说持久化就是把数据保存到文件?持久化指的就是当程序退出后,其中的数据能够保留下来,供程序再次运行的时候使用。这些数据保留在什么地方最好呢?当然是文件里。
保存到文件是数据持久化最常用的方式,除此之外,还可以把数据保存到数据库,或者发送到其它机器,这都是持久化。不过保存在文件是最简单的方式。具体来说就是:选取需要保存的数据,按照一定的格式组织起来,然后写入文件。下面是一个简单的例子:
import java.io.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.text.DateFormat;
/**2009-3-15
* 持久化示例。如何将内存中的数据保存起来,并没有一定的格式,任何人
* 都可以根据自己的喜好来制定。持久化需要文件操作,所以请务必先弄懂
* 如何读写文件。
*/
public class Persistant {
//文件名可随意指定,你可以用文本编辑器打开这个文件(注意,记事本无法处理换行)
static String filename = "persons.data";
public static void main(String[] args) throws Exception {
// 将这个程序运行两遍。
// 第一遍它会创建一些 Person 对象并保存到文件;
// 第二遍它会从文件中读取对象数据并显示出来。
if (!new File(filename).exists()) {
createAndSave();
} else {
readAndShow();
}
}
// 生成并保存 Person 对象
private static void createAndSave() throws IOException {
List<Person> persons = createPersons();
savePersons(persons);
}
// 读取并显示 Person 对象
private static void readAndShow() throws IOException {
List<Person> persons = readPersons();
showPersons(persons);
}
// 创建要保存的 Person 对象
private static List<Person> createPersons() {
List<Person> result = new ArrayList<Person>();
result.add(new Person("张三", new Date(), true));
result.add(new Person("李四", new Date(), false));
result.add(new Person("王五", new Date(), true));
return result;
}
// 保存 Person 对象到文件。保存格式为:
// 1、每个 Person 一行
// 2、每行依次存放 name、birthday、male 三个属性值,用 tab 隔开
// 3、birthday 属性保存的是毫秒数,male 属性保存的是字符串
private static void savePersons(List<Person> persons) throws IOException {
// 生成文件内容
String data = "";
for (Person person : persons) {
data += getPersonString(person) + "\n";
}
// 保存文件内容
FileWriter writer = new FileWriter(filename);
writer.write(data);
writer.close();
System.out.println("对象保存完毕。");
}
private static String getPersonString(Person person) {
return person.getName() + "\t" +
person.getBirthday().getTime() + "\t" +
person.isMale();
}
// 从文件中读取 Person 对象
private static List<Person> readPersons() throws IOException {
List<Person> result = new ArrayList<Person>();
BufferedReader reader = new BufferedReader(new FileReader(filename));
String line;
while ((line = reader.readLine()) != null) {
result.add(getPersonFromString(line));
}
return result;
}
// 通过一行文件内容生成一个 Person 对象
private static Person getPersonFromString(String line) {
String[] parts = line.split("\t"); // 获取被分隔的三个部分
return new Person(
parts[0], // 姓名
new Date(Long.parseLong(parts[1])), // 出生日期
Boolean.parseBoolean(parts[2]) // 是否为男性
);
}
// 显示 Person 对象
private static void showPersons(List<Person> persons) {
DateFormat dateFormat = DateFormat.getDateTimeInstance();
for (Person person : persons) {
System.out.println(person.getName() + ", " +
dateFormat.format(person.getBirthday()) + ", " +
(person.isMale() ? "男" : "女"));
}
}
}
// 要持久化的类
class Person {
private String name; // 姓名
private Date birthday; // 生日
private boolean male; // true 表示男性,false 表示女性
Person(String name, Date birthday, boolean male) {
this.name = name;
this.birthday = birthday;
this.male = male;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public boolean isMale() {
return male;
}
public void setMale(boolean male) {
this.male = male;
}
}
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.text.DateFormat;
/**2009-3-15
* 持久化示例。如何将内存中的数据保存起来,并没有一定的格式,任何人
* 都可以根据自己的喜好来制定。持久化需要文件操作,所以请务必先弄懂
* 如何读写文件。
*/
public class Persistant {
//文件名可随意指定,你可以用文本编辑器打开这个文件(注意,记事本无法处理换行)
static String filename = "persons.data";
public static void main(String[] args) throws Exception {
// 将这个程序运行两遍。
// 第一遍它会创建一些 Person 对象并保存到文件;
// 第二遍它会从文件中读取对象数据并显示出来。
if (!new File(filename).exists()) {
createAndSave();
} else {
readAndShow();
}
}
// 生成并保存 Person 对象
private static void createAndSave() throws IOException {
List<Person> persons = createPersons();
savePersons(persons);
}
// 读取并显示 Person 对象
private static void readAndShow() throws IOException {
List<Person> persons = readPersons();
showPersons(persons);
}
// 创建要保存的 Person 对象
private static List<Person> createPersons() {
List<Person> result = new ArrayList<Person>();
result.add(new Person("张三", new Date(), true));
result.add(new Person("李四", new Date(), false));
result.add(new Person("王五", new Date(), true));
return result;
}
// 保存 Person 对象到文件。保存格式为:
// 1、每个 Person 一行
// 2、每行依次存放 name、birthday、male 三个属性值,用 tab 隔开
// 3、birthday 属性保存的是毫秒数,male 属性保存的是字符串
private static void savePersons(List<Person> persons) throws IOException {
// 生成文件内容
String data = "";
for (Person person : persons) {
data += getPersonString(person) + "\n";
}
// 保存文件内容
FileWriter writer = new FileWriter(filename);
writer.write(data);
writer.close();
System.out.println("对象保存完毕。");
}
private static String getPersonString(Person person) {
return person.getName() + "\t" +
person.getBirthday().getTime() + "\t" +
person.isMale();
}
// 从文件中读取 Person 对象
private static List<Person> readPersons() throws IOException {
List<Person> result = new ArrayList<Person>();
BufferedReader reader = new BufferedReader(new FileReader(filename));
String line;
while ((line = reader.readLine()) != null) {
result.add(getPersonFromString(line));
}
return result;
}
// 通过一行文件内容生成一个 Person 对象
private static Person getPersonFromString(String line) {
String[] parts = line.split("\t"); // 获取被分隔的三个部分
return new Person(
parts[0], // 姓名
new Date(Long.parseLong(parts[1])), // 出生日期
Boolean.parseBoolean(parts[2]) // 是否为男性
);
}
// 显示 Person 对象
private static void showPersons(List<Person> persons) {
DateFormat dateFormat = DateFormat.getDateTimeInstance();
for (Person person : persons) {
System.out.println(person.getName() + ", " +
dateFormat.format(person.getBirthday()) + ", " +
(person.isMale() ? "男" : "女"));
}
}
}
// 要持久化的类
class Person {
private String name; // 姓名
private Date birthday; // 生日
private boolean male; // true 表示男性,false 表示女性
Person(String name, Date birthday, boolean male) {
this.name = name;
this.birthday = birthday;
this.male = male;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public boolean isMale() {
return male;
}
public void setMale(boolean male) {
this.male = male;
}
}
转载自:http://blog.csdn.net/YidingHe/archive/2009/03/09/3971073.aspx
发表评论
-
[原]MyEclipse location already exists
2009-07-27 00:37 1747[标题]:[原]MyEclipse location alre ... -
[原]Exception starting filter MyStruts2
2009-07-27 19:41 1068[标题]:[原]Exception starting filt ... -
[原]Struts2校验框架
2009-07-27 23:54 1141[标题]:[原]Struts2校验框架 [时间]:2009- ... -
[原]Struts2-拦截器
2009-08-01 00:21 1171[标题]:[原]Struts2-拦截器 [时间]:2009- ... -
[原]Struts2-文件上传与下载
2009-08-08 08:48 2207[标题]:[原]Struts2-文件上 ... -
[原]Struts2-国际化
2009-08-10 18:13 1915[标题]:[原]Struts2-国际化 [时间]:2009- ... -
[原]Struts2-深入探索
2009-08-29 20:32 1085[标题]:[原]Struts2-深入探索 [时间]:2009 ... -
[原]Struts2-整合JFreeChart
2009-09-03 17:10 1925[标题]:[原]Struts2-整合JFr ... -
[原]调试EL函数时,Tomcat提示NullPointerException
2009-04-03 19:02 944[标题]:调试EL函数时,Tomcat提示NullPointe ... -
[原]HelloWorldServlet
2009-05-27 22:16 950编译运行步骤: 1、将HelloWorldServlet.ja ... -
[原]getServletInfo()
2009-05-27 23:16 1406《JSP完全学习手册》学习心得之:getServletInfo ... -
[原]jsp:forward
2009-05-27 23:24 935《JSP完全学习手册》学习心得:jsp:forward Jud ... -
[原]jsp:param
2009-05-27 23:27 1621《JSP完全学习手册》学习心得:jsp:param param ... -
[原]request.getParameterValues()
2009-05-27 23:32 1243《JSP完全学习手册》学习心得:request.getPara ... -
[原]隐含对象config
2009-05-27 23:54 770《JSP完全学习手册》学习心得:隐含对象config < ... -
[原]cookie读写
2009-05-28 00:03 870《JSP完全学习手册》学习心得:cookie读写 <%@ ... -
[原]getHttpHeader
2009-05-28 00:14 861《JSP完全学习手册》学习心得:getHttpHeader g ... -
[原]向MySQL数据库插入Blob数据的问题
2009-06-03 23:45 3999[标题]:向MySQL数据库插 ... -
[原]SQL内外连接
2009-06-17 22:31 932-- Author:Winty(天堂露珠) -- Date: ...
相关推荐
总的来说,这个Java小例子展示了数据持久化的基本原理和实现步骤,通过文件作为中介,实现了程序运行状态的保存和恢复。在实际开发中,根据项目需求,可以选择更适合的数据持久化方案,如数据库、NoSQL存储、云存储...
1. **数据持久化**:允许将对象状态保存到文件或数据库。 2. **网络传输**:方便通过网络发送对象状态。 3. **版本控制**:支持序列化版本号,处理类版本变化。 **缺点**: 1. **性能开销**:序列化和反序列化可能...
在IT行业中,数据持久化是一项重要的任务,它指的是将数据保存到非易失性存储设备,以便在系统重启或关闭后仍然能够恢复。本案例中,“缓存List并写入文件持久化”的主题聚焦于如何将内存中的数据,特别是列表(List...
- **数据持久化**: 指的是程序中的对象状态在系统重启后仍然能够保存,即使没有内存支持也能保持其状态。在Hibernate中,数据持久化是通过对象和数据库记录之间的映射实现的。 2. **Hibernate 配置** - **...
首先,LightGBM模型的保存和加载是模型持久化的重要步骤。在Python中,我们可以使用`lightgbm`库提供的`save_model`和`load_model`函数来实现这一过程。例如,一旦模型训练完成,可以使用以下代码保存模型: ```...
本文主要探讨了Android数据持久化的文件存储方式,这是最基础的数据存储手段,适用于保存简单文本或二进制数据。 数据持久化是为了确保即使在应用程序关闭或设备断电后,内存中的数据仍能保持。Android提供了多种...
本章通过简单的helloapp应用例子,演示如何利用Hibernate来持久化Java对象。 3.1 创建Hibernate的配置文件 47 3.2 创建持久化类 48 3.3 创建数据库Schema 51 3.4 创建对象-关系映射文件 52 3.4.1 映射文件的...
本章通过简单的helloapp应用例子,演示如何利用Hibernate来持久化Java对象。 3.1 创建Hibernate的配置文件 47 3.2 创建持久化类 48 3.3 创建数据库Schema 51 3.4 创建对象-关系映射文件 52 3.4.1 映射文件的...
- **数据持久化技术**: 是指将程序中的数据存储到持久化存储介质(如硬盘)的过程。持久化技术有助于数据的长期保存,并支持跨系统和跨应用的数据共享。 - **Hibernate**: 是一个面向Java环境的对象关系映射(ORM)...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
在Java编程语言中,文件存储是一项基础且重要的任务,特别是在处理数据持久化时。这个"j文件存储(java代码)"示例展示了如何利用Java的IO流来存储学生信息到文本文件中。以下是对给定文件的详细解读: 1. **View....
在这个例子中,我们将探讨如何在Tomcat 6这样的Java应用服务器上配置并使用OSWorkflow,同时利用MySQL作为持久化存储。 首先,我们需要理解OSWorkflow的核心概念。它是基于Java的工作流管理系统,提供了一种声明式...
HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...
- **文件保存**: 一旦文件被接收,它们可能需要移动到持久化存储,如特定的文件夹,以供后续下载。 - **错误处理**: 需要考虑文件大小限制、文件类型检查以及上传过程中的其他异常情况。 2. **文件下载** - **...
在Java编程领域,文件上传是一项常见的任务,尤其在...总的来说,这个案例提供了一个全面的教程,涵盖了从用户界面设计、服务器端处理到数据持久化的整个过程。理解并实践这些知识点对于提升Java Web开发技能至关重要。
1. **创建(Save/SaveOrUpdate)**:将Java对象保存到数据库,使得对象成为持久化状态。 2. **加载(Load/Get)**:根据主键从数据库中获取对象,使对象变为持久化状态。 3. **更新(Update)**:当对象状态发生变化...
Java对象的序列化和反序列化是Java编程中一项...总结,Java对象的序列化和反序列化是Java编程中的基础概念,它涉及到数据持久化、网络通信等多个方面。理解并熟练运用这一技术,能够帮助开发者更有效地管理和传递数据。
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...