说数据持久化,初学者可能还不太懂;但要说把数据保存到文件,这谁都懂了。为什么说持久化就是把数据保存到文件?持久化指的就是当程序退出后,其中的数据能够保留下来,供程序再次运行的时候使用。这些数据保留在什么地方最好呢?当然是文件里。
 
保存到文件是数据持久化最常用的方式,除此之外,还可以把数据保存到数据库,或者发送到其它机器,这都是持久化。不过保存在文件是最简单的方式。具体来说就是:选取需要保存的数据,按照一定的格式组织起来,然后写入文件。下面是一个简单的例子:
 
    - import java.io.*;   
- import java.util.ArrayList;   
- import java.util.Date;   
- import java.util.List;   
-     
-  
-  
-  
-  
-   
- public class Persistant {   
-     
-       
-     static String filename = "persons.data";   
-     
-     public static void main(String[] args) throws Exception {   
-           
-           
-           
-         if (!new File(filename).exists()) {   
-             createAndSave();   
-         } else {   
-             readAndShow();   
-         }   
-     }   
-     
-       
-     private static void createAndSave() throws IOException {   
-         List<Person> persons = createPersons();   
-         savePersons(persons);   
-     }   
-     
-       
-     private static void readAndShow() throws IOException {   
-         List<Person> persons = readPersons();   
-         showPersons(persons);   
-     }   
-     
-       
-     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;   
-     }   
-     
-       
-       
-       
-       
-     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();   
-     }   
-     
-       
-     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;   
-     }   
-     
-       
-     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])            
-         );   
-     }   
-     
-       
-     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;         
-     
-     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 
	posted on 2009-03-10 07:52 
Werther 阅读(4125) 
评论(0)  编辑  收藏  所属分类: 
10.Java