dimanche 11 janvier 2015

Every 51 or 52 records - write failed: EBADF


Vote count:

0




I have an Android App that reads records from 1 file and writes them to another file. On my Galaxy S4, it works fine. On my Galaxy Tablet 10.1 and older Nexus phone, it fails when writing after a few thousand records, and then go into a pattern of failing every 51 or 52 records. The error message I get is write failed: EBADF (Bad file number). I am lost as to why this always works on 1 device but fails consistently on my tablet and old Nexus phone. It strange (to me) that once I hit the first failure on the write statement, it goes into a pattern of writing the next 51 or 52 records before having the EBADF error again. Any ideas on what is causing the problem?



int saveSegmentCounter=0;
while (ACCTime<=ACCTimeArray[ACCendPointer] && eofACC==false) {
//Log.d(tag, "Map3-1 doTrimFiles - lineACC="+lineACC);
//write the new ACC record
try {
fACCWriter.write(lineACC+"\n"); //why does this fail sometimes???
saveSegmentCounter++;
//Log.d(tag, "Map3 doTrimFiles Try when writing ACC number "+saveSegmentCounter);
} catch (IOException e) {
Log.d(tag, "Map3 doTrimFiles Catch when writing ACC number "+saveSegmentCounter); //Fails every 54 or 53 records???
Log.d(tag, "Map3 e.getmessage: "+ e.getMessage()); //Fails every 54 or 53 records???
e.printStackTrace();
}
ReadACCFile(null); //read the next acc record
}


The stacktrace produces:


01-11 21:52:21.306: D/Events(6449): Map3 doTrimFiles Catch when writing ACC number 9348 01-11 21:52:21.306: D/Events(6449): Map3 e.getmessage: write failed: EBADF (Bad file number)

01-11 21:52:21.306: W/System.err(6449): java.io.IOException: write failed: EBADF (Bad file number)

01-11 21:52:21.306: W/System.err(6449): at libcore.io.IoBridge.write(IoBridge.java:455) 01-11 21:52:21.306: W/System.err(6449): at java.io.FileOutputStream.write(FileOutputStream.java:187) 01-11 21:52:21.306: W/System.err(6449): at java.io.OutputStreamWriter.flushBytes(OutputStreamWriter.java:167) 01-11 21:52:21.306: W/System.err(6449): at java.io.OutputStreamWriter.convert(OutputStreamWriter.java:181) 01-11 21:52:21.306: W/System.err(6449): at java.io.OutputStreamWriter.write(OutputStreamWriter.java:324) 01-11 21:52:21.306: W/System.err(6449): at java.io.Writer.write(Writer.java:141) 01-11 21:52:21.306: W/System.err(6449): at com.grimmersoftware.roadbump1.Map3$1.onClick(Map3.java:852) 01-11 21:52:21.306: W/System.err(6449): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:167) 01-11 21:52:21.306: W/System.err(6449): at android.os.Handler.dispatchMessage(Handler.java:102) 01-11 21:52:21.306: W/System.err(6449): at android.os.Looper.loop(Looper.java:136) 01-11 21:52:21.306: W/System.err(6449): at android.app.ActivityThread.main(ActivityThread.java:5476) 01-11 21:52:21.306: W/System.err(6449): at java.lang.reflect.Method.invokeNative(Native Method) 01-11 21:52:21.306: W/System.err(6449): at java.lang.reflect.Method.invoke(Method.java:515) 01-11 21:52:21.306: W/System.err(6449): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 01-11 21:52:21.306: W/System.err(6449): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 01-11 21:52:21.306: W/System.err(6449): at dalvik.system.NativeStart.main(Native Method) 01-11 21:52:21.311: W/System.err(6449): Caused by: libcore.io.ErrnoException: write failed: EBADF (Bad file number) 01-11 21:52:21.311: W/System.err(6449): at libcore.io.Posix.writeBytes(Native Method) 01-11 21:52:21.311: W/System.err(6449): at libcore.io.Posix.write(Posix.java:202) 01-11 21:52:21.311: W/System.err(6449): at libcore.io.BlockGuardOs.write(BlockGuardOs.java:197) 01-11 21:52:21.311: W/System.err(6449): at libcore.io.IoBridge.write(IoBridge.java:450) 01-11 21:52:21.311: W/System.err(6449): ... 15 more



asked 48 secs ago







Every 51 or 52 records - write failed: EBADF

Aucun commentaire:

Enregistrer un commentaire