package test;
import java.io.*;
import java.util.ArrayList;
public class Test2 {
public static void main(String[] args) throws IOException, ClassNotFoundException {
// 1.已知模块跟路径下有一个a.txt文件 且有一些数据
// 2.数据如下:
// 唠嗑晕,18
// 杜子腾,19
// 3.要求将这些数据读取出来,且每一行数据都存入到一个 Student 对象中
// 4.使用对象操作流 将这些对象都序列化到 D:\\data.txt文件中
// 5.使用对象操作类 将D:\\data.txt文件中的对象反序列化出来,并打印到控制台
BufferedReader br = new BufferedReader(new FileReader("charstream\\d.txt"));
String len;
ArrayList<Student> list = new ArrayList<>();
while ((len = br.readLine())!=null){
// 将每一个读到的数据进行切割然后变成学生类的对象
String name = len.split(",")[0];
String age = len.split(",")[1];
Student stu = new Student(name,age);
list.add(stu);
}
// 将整个集合写到文件中
ObjectOutputStream obj = new ObjectOutputStream(new FileOutputStream("D:\\data.txt"));
obj.writeObject(list);
obj.close();
// 读取文件中的数据,然后遍历打印在控制台
ObjectInputStream obi = new ObjectInputStream(new FileInputStream("D:\\data.txt"));
ArrayList<Student> list2 = (ArrayList<Student>) obi.readObject();
for (Student student : list2) {
System.out.println(student);
}
obi.close();
}
}
package test;
import java.io.Serializable;
public class Student implements Serializable {
private static final long serialVersionUID = 42L;
private String name ;
private transient String age ;
public Student(String name, String age) {
this.name = name;
this.age = age;
}
public Student() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
'}';
}
}