求大神,java.io.EOFException异常问题

夏茉秋凉 2016-10-08 05:03:23
我每次只用ois.readObject()方法读一个对象,但是报java.io.EOFExcepton异常 好多说是这个异常是读到文件结尾了
但是我只读了一个对象(并且里面也只有 )??报错代码arr = (ArrayList) ois.readObject();
对了打开序列化的文件里面只有一个问号,文件大小只有4字节
ArrayList arr;
String id;
String code;
String name;
Player pla;
File f;
FileInputStream fis;
ObjectInputStream ois;
FileOutputStream fos;
ObjectOutputStream oos;
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入账号");
id = sc.next();
try {
int x = Integer.parseInt(id);
break;
} catch (NumberFormatException e) {
System.out.println("类型不匹配,请重新输入");
}
}
System.out.println("请输入密码");
code = sc.next();
System.out.println("请输入昵称");
name = sc.next();
pla = new Player(id, code, name);
System.out.println(pla.toString());
f = new File("G:\\player\\1.dat");
fos = new FileOutputStream(f);
oos = new ObjectOutputStream(fos);
fis = new FileInputStream(f);
ois = new ObjectInputStream(fis);
arr = new ArrayList();
if (f.length() < 1){
oos.writeObject(arr);
}
oos.flush();
arr = (ArrayList) ois.readObject();
arr.add(pla);
oos.writeObject(arr);
if (oos != null)
oos.close();
if (fos != null)
fos.close();
if (ois != null)
ois.close();
if (fis != null)
fis.close();
System.out.println("创建成功,开始游戏");
return pla;
...全文
353 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomorrow_C 2016-10-08
  • 打赏
  • 举报
回复
你的读写指定的都是同一个文件,写的话,如果指定的文件存在,会把内容清空掉再把内容写进去;还有你的关闭流操作没必要那么复杂

62,625

社区成员

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

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