다음 코드는 EOFException
을 생성합니다. 왜 그런가요?readObject를 사용한 Java 신비한 EOF 예외
public static Info readInfoDataFromFile(Context context) {
Info InfoData = null;
FileInputStream fis = null;
ObjectInputStream ois = null;
Object object = null;
if (context.getFileStreamPath("InfoFile.dat").exists()) {
try {
fis = context.openFileInput("InfoFile.dat");
ois = new ObjectInputStream(fis);
Object temp;
try {
// here it throws EOF exception in while loop
while ((temp = ois.readObject()) != null) {
object = temp;
}
} catch (NullPointerException npe) {
npe.printStackTrace();
} catch (EOFException eof) {
eof.printStackTrace();
} catch (FileNotFoundException fnfe) {
fnfe.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (ois != null) {
ois.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if (fis != null) {
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
스택 트레이스 :
03-07 14:29:01.996: WARN/System.err(13984): java.io.EOFException
03-07 14:29:01.996: WARN/System.err(13984): at java.io.DataInputStream.readByte(DataInputStream.java:131)
03-07 14:29:01.996: WARN/System.err(13984): at java.io.ObjectInputStream.nextTC(ObjectInputStream.java:628)
03-07 14:29:01.996: WARN/System.err(13984): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:907)
03-07 14:29:01.996: WARN/System.err(13984): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2262)03-07 14:29:01.996: WARN/System.err(13984): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2217)
03-07 14:29:01.996: WARN/System.err(13984): at
자바 독 :'로 OptionalDataException의 원인이됩니다 대응하는 writeObject 메소드에 의해 기입해진 커스텀 데이터의 경계를 초과하는 오브젝트 데이터를 읽어들이려고이 TRUE ' – malinois
의 eof 필드의 값이 발생 될 수 그래 나는 이미 그것을 읽고 그러나 그것을 피하는 방법? –