2012-01-08 85 views
0

我有一個代碼,下載和讀取文本文件,但它返回IOException與Android 2.3。它適用於其他版本。文件下載返回IOException與Android 2.3

同樣的問題的重複是here但這些技巧都沒有幫助,我目前正在試圖在this page訣竅。我的代碼中也有自定義的DoneHandlerInputStream類。

代碼:

URL url = new URL(URLstr); 
URLConnection connection = url.openConnection(); 

BufferedReader rd; 

InputStream stream = connection.getInputStream(); 
stream = new DoneHandlerInputStream(stream); 
rd = new BufferedReader(new InputStreamReader(stream)); 

StringBuffer sb = new StringBuffer(); 
String line; 
while ((line = rd.readLine()) != null){ 
    sb.append(line); 
} 
rd.close(); 

String resultedString = sb.toString(); 
+0

可以粘貼異常的堆棧跟蹤? – MikeIsrael 2012-01-08 12:35:26

+0

java.io.IOException:流的意外結束。不知道這是不是你想知道的。 – Finnboy11 2012-01-08 16:36:10

+0

補給它。我只注意到這個問題有兩個原因。這真的解決了另一個問題,但不知何故,在我的應用中使用的「exists(URLstr)」總是會導致Android 2.3失效,而我的應用最終會下載不存在的文件。 – Finnboy11 2012-01-08 17:06:30

回答

0
have u try this? 

while((line = rd.readLine()) != null) 
{ 
    sb.append(line); 
    if (!rd.ready()) { 
     break; 
    } 
} 
rd.close(); 
+0

其實我已經解決了我的問題。這真的對我很有用,但是它的結果是IOException,因爲它試圖下載一個不存在的文件。我的應用程序下載了很多文件,當應用程序試圖檢查哪些文件存在時,結果始終是錯誤的,並且弄亂了我的應用程序。 – Finnboy11 2012-01-08 16:53:28

+0

好吧哈哈哈它很高興能幫到你 – 2012-01-09 11:56:55

+0

與我在這裏實際發生的混亂相比,這並不好笑。我最初甚至沒有使用BufferedReader。我有DataInputStream,根本沒有這個問題,但是當我在Android 2.3中得到IOException時,我將DataInputStream更改爲BufferedReader,因爲這裏有一個「解決方案」。除了另一個IOException之外,這給了我包含ä和ö的文本文件帶來的問題,並導致我解決問題時出錯。失敗!這只是運氣不佳,存在()和BufferedReader在Android 2.3上有問題。 – Finnboy11 2012-01-14 14:58:27