【发布时间】:2017-05-30 15:08:33
【问题描述】:
我遇到了一个我似乎不明白的奇怪问题。 我正在制作一个从文件中读取数据的程序。但是当我读取数据时,我会立即收到 EOFException。
所以我用 .available() 检查了文件是否为空。我得到了一个奇怪的结果。 FileInputStream 表示文件已填充(249 字节),但 ObjectInputStream 表示文件为空(或无法读取)。
EOFException at: "int signatureSize = ois.readInt();"
FileInputStream fin = new FileInputStream("input(signedbyLK).ext");
System.out.println("fin available: " + fin.available());
ObjectInputStream ois = new ObjectInputStream(fin);
System.out.println("ois avaiable: " + ois.available());
int signatureSize = ois.readInt();
byte[] sigBytes = (byte[]) ois.readObject();
String text = (String) ois.readObject();
ois.close();
编辑:我正在向文件中添加这样的内容:
File newFile = new File("input(signedbyLK).ext");
newFile.createNewFile();
System.out.println("Succesfully created new file: " + newFile.getName());
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(newFile));
oos.writeObject(sigBytes.length);
oos.writeObject(sigBytes);
oos.writeObject(readInput());
oos.close();
【问题讨论】:
标签: java file stream inputstream objectinputstream