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 }