当前位置:首页 >> 信息与通信 >>

数据持久化


import import import import

java.io.*; java.util.ArrayList; java.util.Date; java.util.List;

/** * 持久化示例。如何将内存中的数据保存起来,并没有一定的格式,任何人 * 都可以根据自己的喜好来制定。持久化需要文件操作,所以请务必先弄懂 * 如

何读写文件。 */ public class Persistant { // 文件名可随意指定, 你可以用文本编辑器打开这个文件 (注意, 记事本无法处理换行) static String filename = "persons.data"; public // // // if static void main(String[] args) throws Exception { 将这个程序运行两遍。 第一遍它会创建一些 Person 对象并保存到文件; 第二遍它会从文件中读取对象数据并显示出来。 (!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) { for (Person person : persons) { System.out.println(person.getName() + ", " + 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; } }


相关文章:
Hibernate单选题
单选题 1.下面不属于持久化的是( a) A.把对象转换为字符串的形式通过网络传输,在另一端接收到这个字符串后能把 对象还原出来 B.把程序数据数据库中读出来...
iOS中几种数据持久化方案:我要永远地记住你!
iOS中几种数据持久化方案:我要永远地记住你!_计算机软件及应用_IT/计算机_专业资料。本文来源优就业官网,主要介绍了iOS中几种数据持久化方案。...
用友NCV6.1 NC数据库持久化学习
用友NCV6.1 NC数据持久化学习_计算机软件及应用_IT/计算机_专业资料。NC 数据持久化学习 1、案例的应用场景概述:在 NC 的开发中可以直接通过 JDBC 编程来...
优就业WEB教程-Web数据持久化存储IndexedDB
优就业 WEB 教程-Web 数据持久化存储 IndexedDB IndexedDB 是在浏览器中保存结构化数据的一种数据库, 为了替换 WebSQL(标 准已废弃,但被广泛支持)而出现。...
ssh期末复习题
数据访问层 D) 通讯层 11、对象(实体的实例)对一个特定的 Session 来说,要么是一个___对象,要么是___ 对象(AB) (多选) A) 瞬时 B) 持久化 C) 控制...
题库
使用 Hibernate 技术实现数据持久化时,下面( )内容不在 中配置(选择一项) A) 数据库连接信息 B) 数据库类型(dialect) C) show_sql 参数 D) 数据库表和实体...
JBPM5.4数据持久化和事务控制
JBPM5.4数据持久化和事务控制_计算机软件及应用_IT/计算机_专业资料。数据持久化,事务控制还有自己遇到的一个关于事务回滚的问题。注:因为我在使用 jbpm 控制台调试...
IOS数据持久化之归档NSKeyedArchiver(烟台杰瑞教育原创)
IOS数据持久化之归档NSKeyedArchiver(烟台杰瑞教育原创)_计算机软件及应用_IT/计算机_专业资料。IOS数据持久化之归档NSKeyedArchiver烟台杰瑞教育科技有限公司(IOS 开发...
Hibernate根据数据库表生成持久化类和映射文件
Hibernate根据数据库表生成持久化类和映射文件_计算机软件及应用_IT/计算机_专业资料。Hibernate中根据数据库中各表,使用myEclipse的返向工程,自动生成hibernate.cfg.xml...
java持久化技术
持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个 逻辑层面,将数据使用者和数据实体相关联。 (3)为什么要持久化?增加持久层的作用...
更多相关标签: