java I/O流问题,ObjectInputStream中读取对象然后使用readObject()方法,为什么还要强制转换?

如题... 如题 展开
 我来答
l7722526
2018-10-24 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3791万
展开全部
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); }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式