0
编辑(为了混淆):null
已被写入文件“abc”和“efg”。创建FileOutputStream对象后文件发生变化,即使没有写入文件
运行下面的代码,文件“ABC”改变其最初null
的内容后,我在每一次执行得到EOFException类:
ObjIStream = new ObjectInputStream(new FileInputStream("abc"));
M[][] objs = (M[][]) ObjIStream.readObject();
FS.objs = objs;
ObjIStream.close();
这里,FS.objs
是类FS的静态成员键入M[][]
类型。
在另一方面,这其中有对文件没有影响,我任何被处决的人数后,没有得到任何例外:
ObjIStream = new ObjectInputStream(new FileInputStream("abc"));
M[][] objs = (M[][]) ObjIStream.readObject();
ObjIStream.close();
编辑:我刚刚发现存在于类FS麻烦在这种形式:
static{
try {
ObjOStream = new ObjectOutputStream(new FileOutputStream("abc"));
ObjOStream.close();
ObjOStream = new java.io.ObjectOutputStream(new java.io.FileOutputStream("efg"));
ObjOStream.close();
}
catch (IOException ex) { }
}
它是如何烦恼吗?
正如你可能已经知道的那样,阅读文件不应该改变它,并且不能改变文件本身,所以你需要向我们展示代码,这实际上是为了我们能够猜测什么可能是错误的。请显示你的文件和你的[mcve]。 –
嗯,我刚刚发现我有这样的代码在FS: 'static { 尝试ObjOStream = new ObjectOutputStream(new FileOutputStream(“abc”)); ObjOStream.close(); ObjOStream = new java.io.ObjectOutputStream(new java.io.FileOutputStream(“efg”)); ObjOStream.close(); } catch(IOException ex){ } }' –
是的,这是麻烦,但它是如何令人烦恼? –