4
我有這段代碼,它將服務器響應並將其寫入文件。Android - 終結器引發的未捕獲異常
該文件包含json數據。我將響應寫入文件以便順序掃描json,並避免在List中加載大的json數據!
我認爲這種方法引發異常,但我不確定!
public File getData(final String url) throws URISyntaxException, AuthenticationException, IOException, ClientProtocolException, HttpResponseException {
final HttpGet getRequest = new HttpGet(new URI(url));
final UsernamePasswordCredentials creds = new UsernamePasswordCredentials(username, password);
getRequest.addHeader(new BasicScheme().authenticate(creds, getRequest));
getRequest.setHeader("Content-Type", "application/json");
final ResponseHandler<byte[]> responseHandler = new ByteArrayResponseHandler();
final byte[] responseBody = mClient.execute(getRequest, responseHandler);
final File output = new File(FileConfig.TEMP_PATH + System.currentTimeMillis()+".json");
final FileOutputStream fos = new FileOutputStream(output.getPath());
fos.write(responseBody);
fos.close();
return output;
}
但我注意到,最近(我不知道爲什麼)我得到這個異常:
01-22 07:45:51.809: E/System(9055): Uncaught exception thrown by finalizer
01-22 07:45:51.833: E/System(9055): java.io.IOException: close failed: EIO (I/O error)
01-22 07:45:51.833: E/System(9055): at libcore.io.IoUtils.close(IoUtils.java:41)
01-22 07:45:51.833: E/System(9055): at java.io.FileInputStream.close(FileInputStream.java:121)
01-22 07:45:51.833: E/System(9055): at java.io.FileInputStream.finalize(FileInputStream.java:142)
01-22 07:45:51.833: E/System(9055): at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:185)
01-22 07:45:51.833: E/System(9055): at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:168)
01-22 07:45:51.833: E/System(9055): at java.lang.Thread.run(Thread.java:856)
01-22 07:45:51.833: E/System(9055): Caused by: libcore.io.ErrnoException: close failed: EIO (I/O error)
01-22 07:45:51.833: E/System(9055): at libcore.io.Posix.close(Native Method)
01-22 07:45:51.833: E/System(9055): at libcore.io.BlockGuardOs.close(BlockGuardOs.java:75)
01-22 07:45:51.833: E/System(9055): at libcore.io.IoUtils.close(IoUtils.java:38)
01-22 07:45:51.833: E/System(9055): ... 5 more
01-22 07:45:51.833: E/System(9055): Uncaught exception thrown by finalizer
01-22 07:45:51.841: E/System(9055): java.io.IOException: close failed: EIO (I/O error)
01-22 07:45:51.841: E/System(9055): at libcore.io.IoUtils.close(IoUtils.java:41)
01-22 07:45:51.841: E/System(9055): at java.io.FileInputStream.close(FileInputStream.java:121)
01-22 07:45:51.841: E/System(9055): at java.io.FileInputStream.finalize(FileInputStream.java:142)
01-22 07:45:51.841: E/System(9055): at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:185)
01-22 07:45:51.841: E/System(9055): at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:168)
01-22 07:45:51.841: E/System(9055): at java.lang.Thread.run(Thread.java:856)
01-22 07:45:51.841: E/System(9055): Caused by: libcore.io.ErrnoException: close failed: EIO (I/O error)
01-22 07:45:51.841: E/System(9055): at libcore.io.Posix.close(Native Method)
01-22 07:45:51.841: E/System(9055): at libcore.io.BlockGuardOs.close(BlockGuardOs.java:75)
01-22 07:45:51.841: E/System(9055): at libcore.io.IoUtils.close(IoUtils.java:38)
01-22 07:45:51.841: E/System(9055): ... 5 more
一切似乎工作,但我只覺此異常。
的targetSdk確定我的應用程序是13
感謝您的任何意見/迴應!
我已經添加了類似你的代碼..但即使catch(Exception e)被調用..所以我認爲異常不會在這裏提出..但我怎麼知道異常是在哪裏引發的?該日誌不包含有關我的類/包的信息..麻將... – gipinani
我想我已經解決了..不是我已發佈的代碼片段..但我不關閉JsonParser對象之前刪除文件是附上..非常感謝您的回覆! – gipinani