菜鸟求助!!哪位大神能帮我看看~谢谢!

weixin_36780214 2016-11-21 08:37:15
	public void Test2(){
ObjectInputStream o=null;
Person p4;
try {
o=new ObjectInputStream(new FileInputStream("liuliu.txt"));
Object oo=o.readObject();
p4=(Person)o.readObject();
System.out.println( p4);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
o.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}


下面是出现错误的原因
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at 对象序列化和反序列化.Test2(对象序列化和反序列化.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
...全文
354 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwbg1988 2016-11-27
  • 打赏
  • 举报
回复
报错主要是写入阶段: File file = new File("D:/momo.txt"); FileOutputStream fileOutputStream = new FileOutputStream(file); ObjectOutputStream objectOutputStream = new ObjectOutputStream( fileOutputStream); Person person = new Person("zhangsan"); Person person2 = new Person("lisi"); Person person3 = new Person("wangwu"); objectOutputStream.writeObject(person); objectOutputStream.writeObject(person2); objectOutputStream.writeObject(person3); objectOutputStream.writeObject(null); objectOutputStream.close(); fileOutputStream.close(); 注意最后写入一个空对象。 第7行 修改为 p4=(Person)oo; 就能正确读到;
zhaopeng2511 2016-11-27
  • 打赏
  • 举报
回复
引用 1 楼 northwesternwind 的回复:

 p4=(Person)o.readObject();
已经读入到oo, 为何再次读入?
+1
解开者 2016-11-25
  • 打赏
  • 举报
回复
ObjectInputStream是用来读取被序列化的二进制对象的,不能用来读取文本文件 一般只有用ObjectOutputStream输出的序列化对象才能被这种方式读取
webnonono 2016-11-25
  • 打赏
  • 举报
回复
EOFException表示输入过程中意外地到达文件尾或流尾的信号,导致异常。 其实我挺好奇你的liuliu.txt里面存了什么,这样读出来强转能正确的转化么
清风步月 2016-11-22
  • 打赏
  • 举报
回复
这格式和对象名看着难受。。。
northwesternwind 2016-11-21
  • 打赏
  • 举报
回复

 p4=(Person)o.readObject();
已经读入到oo, 为何再次读入?
内容概要:本文围绕“基于双层共识控制的直流微电网优化调度”展开研究,提出了一种结合双层控制架构与共识算法的优化调度方法,旨在提升直流微电网在分布式能源接入背景下的协调控制能力与运行效率。上层采用集中式优化策略进行全局经济调度,下层则通过分布式共识控制实现各分布式电源间的自主协同,有效解决了系统中功率平衡、电压稳定与资源优化配置等问题。文中详细构建了数学模型,并利用Matlab进行仿真验证,结果表明该方法在动态负载变化与新能源波动条件下仍具备良好的鲁棒性与收敛性,能够实现高效、可靠的微电网能量管理。; 适合人群:具备一定电力系统、自动化或控制理论基础,熟悉Matlab仿真工具,从事新能源、微电网、智能电网等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 掌握双层控制架构在微电网调度中的设计思路与实现方式;② 学习共识算法在分布式能源协调控制中的具体应用;③ 复现论文算法并拓展至多智能体协同、直流配电系统优化等研究方向; 阅读建议:此资源以论文复现为核心,建议读者结合Matlab代码深入理解算法实现细节,重点关注上下层控制器的信息交互机制与收敛条件设定,同时可尝试引入更多不确定性因素以增强模型实用性。

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧