我遇到了一個奇怪的問題,我似乎不明白。 我正在製作一個從文件讀取數據的程序。但是當我讀取數據時,我立即收到一個EOFException。FileInputStream.available()返回字節,但ObjectInputStream.available()返回0
所以我檢查.available()如果文件是空的或不。我得到了一個奇怪的結果。 FileInputStream表示該文件已填充(249字節),但ObjectInputStream表示該文件爲空(或無法讀取)。 EOFException:「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();
我已經編輯我的問題。現在你可以看到我填寫文件的順序。 – Guido
您的讀取呼叫甚至不對應於寫入呼叫。你的第一次寫電話是一個對象,但你的第一次讀是一個int – Biu
哇,我什至沒有注意到這一點。謝謝! – Guido