2013-01-23 22 views
0

這個錯誤是什麼意思?java.io.eofexception

下面是我的logcat輸出:

01-23 17:09:29.120: W/System.err(24339): java.io.EOFException 
01-23 17:09:29.120: W/System.err(24339): at libcore.io.Streams.readAsciiLine(Streams.java:203) 
01-23 17:09:29.120: W/System.err(24339): at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:544) 
01-23 17:09:29.120: W/System.err(24339): at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:784) 
01-23 17:09:29.120: W/System.err(24339): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274) 
01-23 17:09:29.120: W/System.err(24339): at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168) 
01-23 17:09:29.130: W/System.err(24339): at libcore.net.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:270) 
01-23 17:09:29.130: W/System.err(24339): at com.sfcca.coverflow.Store$downloadMagazine.doInBackground(Store.java:881) 
01-23 17:09:29.130: W/System.err(24339): at com.sfcca.coverflow.Store$downloadMagazine.doInBackground(Store.java:1) 
01-23 17:09:29.130: W/System.err(24339): at android.os.AsyncTask$2.call(AsyncTask.java:264) 
01-23 17:09:29.130: W/System.err(24339): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
01-23 17:09:29.130: W/System.err(24339): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
01-23 17:09:29.130: W/System.err(24339): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208) 
01-23 17:09:29.130: W/System.err(24339): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
01-23 17:09:29.130: W/System.err(24339): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
01-23 17:09:29.130: W/System.err(24339): at java.lang.Thread.run(Thread.java:856) 

按照logcat的這是代碼的一部分,其中有一個錯誤: 我試圖從服務器獲取圖像的URL,然後將它們下載

try { 
        HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection(); 
        conn.setDoInput(true); 
        conn.connect(); 
        InputStream in = conn.getInputStream(); 
        Log.i("im connected", "Download"); 
        bmImg = BitmapFactory.decodeStream(in); 

        File filename; 
        try { 
         // GET EXTERNAL STORAGE, SAVE FILE THERE 
         File storagePath = new File(Environment.getExternalStorageDirectory(),"/Futsing/issue"+issueNumber+"/"); 
         storagePath.mkdirs(); 

         filename = new File(storagePath + "/page"+number+".jpg"); 
         FileOutputStream out = new FileOutputStream(filename); 
         bmImg.compress(Bitmap.CompressFormat.JPEG, 90, out); 

         out.flush(); 
         out.close(); 
         in.close(); 
         MediaStore.Images.Media.insertImage(getContentResolver(),filename.getAbsolutePath(), filename.getName(), 
           filename.getName());   


         // displayImage(); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

回答

-1

EOFException意味着文件結束(EOF)異常。 EOF用於指示文件的結尾。通常情況下,如果您想讀取文件直到最後您執行一段時間的操作,但條件EOF尚未達到。

它有點類似於字符串結尾的'/ 0'。 EOF代替用於標記文件的末尾

你可能會試圖讀取該文件EOF已達到後,將導致異常被引發

+0

我該如何解決這個問題?有時它不會發生,有時它會發生。我很困惑! – user1234555

1

嘗試從這個Android HttpsUrlConnection eofexception

看起來你需要add

if (Build.VERSION.SDK != null && Build.VERSION.SDK_INT > 13) { urlConnect.setRequestProperty("Connection", "close"); } 
相關問題