求大神,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;