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 }