私はそのRandomAccessFile
ようなものに書いています:(LinkedListのサブクラスで)
file.setLength(0);
for (Person person : this)
file.writeUTF(person.getBlob());
Person.getBlob()
基本的な英数字、スペース、および CR (半角文字のみ) のみを含む、一定の長さの文字列を返します。この場所で、ファイルにはちょうど 100 レコードが含まれます。(16進エディタで確認)
次に、そのファイルを読み取ろうとします。
int counter = 0;
while (true) {
try {
add(Person.fromBlob(file.readUTF()));
} catch (EOFException e) {
System.out.println(counter + " records read from file.");
break;
} catch (Exception exception) {
throw new DBException(exception);
}
counter++;
}
私は常に、正しく読み取られた 1 つのレコードとEOFException
. このコードの何が問題になっていますか?