1个回答
展开全部
eadObject返回值为Object对象,从表面看我们只能读取一个序列化对象,但是数组也是Object对象,所以我们可以把序列化对象数组读取出来(List等集合框架也是好的选择),这样就可以实现读取多个对象。 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class Test { public Test() { // 创建序列化的对象数组 MyData [] myDatas = new MyData[10]; // 通过循环构造每一个对象 for(int i = 0; i < myDatas.length; i++){ myDatas[i] = new MyData("数据:" + (i + 1)); } // 对象将要保存的文件 File file = new File("C:/mydata.dat"); // 对象输出流 ObjectOutputStream out = null; // 对象输入流 ObjectInputStream in = null; try { // 将数组对象写入文件 out = new ObjectOutputStream(new FileOutputStream(file)); out.writeObject(myDatas); out.flush(); out.close(); // 将数组对象从文件中读取 in = new ObjectInputStream(new FileInputStream(file)); MyData [] datas = (MyData[]) in.readObject(); for (MyData myData : datas) { System.out.println(myData); }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询