简单的文件持久化技术

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.FileReader;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 import java.util.ArrayList;
 7 import java.util.Comparator;
 8 import java.util.List;
 9 
10 import org.junit.Test;
11 
12 public class SaveInformation {
13 //    学生信息存在集合中
14 //把学生按照年龄降序存到文件中,并把信息取出来
15     @Test
16     public void writeIn() throws IOException {
17         List<Student> students = new ArrayList<Student>();
18         students.add(new Student(1, "小明", 15));
19         students.add(new Student(2, "小胖", 17));
20         students.add(new Student(3, "小红", 16));
21 //        降序排序
22         students.sort(new Comparator<Student>() {
23             @Override
24             public int compare(Student o1, Student o2) {
25                 return o2.getAge() - o1.getAge();
26             }
27         });
28 //        System.out.println(students);
29 //        存储对象信息
30         BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));
31 //        循环写
32         for (Student stu : students) {// 得到每一个学生,接下来存放学生的信息,用分割符隔开存放
33             bw.write(stu.getiD() + ",");
34             bw.flush();
35             bw.write(stu.getName() + ",");
36             bw.flush();
37             bw.write(stu.getAge() + "");
38             bw.flush();
39             bw.newLine();
40         }
41         bw.close();
42 
43     }
44 
45     @Test
46     public void readIN() throws IOException {
47         // 把学生信息读到控制台,需要一个集合装学生,还需要学生
48         List<Student> students = new ArrayList<>();
49 //        一行一行读取每个学生
50 //        用流找到对应的字节
51         BufferedReader br = new BufferedReader(new FileReader("b.txt"));
52         String length = null;
53         while ((length = br.readLine()) != null) { // 读到了数据,然后输出数据,字符串格式
54 //            System.out.println(length);
55             String[] stuInformation = length.split(",");// 分割后存放到学生集合中
56 //            使用包装类把字符串转成integer类型,再自动拆箱
57             students.add(new Student(Integer.parseInt(stuInformation[0]), stuInformation[1],
58                     Integer.parseInt(stuInformation[2])));
59         }
60         br.close();
61 //                验证信息
62         for (Student stu : students) {
63             System.out.println(stu.getAge());
64         }
65     }
66 
67 }

 

posted @ 2019-04-11 11:29  我差两天十八岁  阅读(274)  评论(0编辑  收藏  举报