java.io.EOFException
FileInputStream fis = new FileInputStream("e:\\newwww.dat");
FileOutputStream fos = new FileOutputStream("e:\\newwww.dat");
ObjectInputStream ois = new ObjectInputStream(fis);
ObjectOutputStream oos = new ObjectOutputStream(fos);
会出现: java.io.EOFException 这是一个可能出现的问题,有谁知道是什么原因吗
经过我的实践:
如果把最后两行代码互换,就怎么都不会报错。
发生的原因是读取StreamHeader错误,也就是这个文件不能被读成一个序列化对象
而为什么最后两行对调后就不会报错了呢,大家可以实践一下:
FileOutputStream fos = new FileOutputStream("e:\\newwww.dat");//已经存在的文件将被删除再重新被创建,字节长度为0
ObjectOutputStream oos = new ObjectOutputStream(fos); //只要创建了此流,java就会向文件中写入4个字节的内容。( 写入的应该是StreamHeader吧)
而此时再执行ObjectInputStream ois = new ObjectInputStream(fis); 就不会报错了