readObject返回值为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); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static void main(String[] args) { new Test(); } }
/** * 序列化数据 */ class MyData implements Serializable { private String text = null; public MyData(String text) { this.text = text; } public String toString() { return text; } public String getText() { return text; } public void setText(String text) { this.text = text; } }
希望对大家有借鉴意义!如有疑问,可以和我交流!新浪微博 @MX_RM
Java IO中的对象流之一次读入多个对象
最新推荐文章于 2022-01-21 16:29:59 发布