El siguiente código produce un EOFException
. ¿Porqué es eso?Excepción EOF misteriosa de Java con readObject
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();
}
}
StackTrace:
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
Javadoc: 'Cualquier intento de leer datos de objeto que excede los límites de los datos personalizados escritos por el método writeObject correspondiente provocará un OptionalDataException a ser lanzado con un valor de campo de EF true' – malinois
sí ya he leído pero cómo evitarlo? –