2012-06-05 187 views
0

我想從服務器上存在的文件中讀取文本,該文件包含文本「hello world」,現在我想在TextView上編寫此文本。我導入了所有必需的軟件包。在此先感謝如何從.txt文件讀取

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     TextView tv = new TextView(this); 

     try { 
      URL updateURL = new URL("http://--------------------/foldername/hello.txt");     
      URLConnection conn = updateURL.openConnection(); 
      InputStream is = conn.getInputStream(); 
      BufferedInputStream bis = new BufferedInputStream(is); 
      ByteArrayBuffer baf = new ByteArrayBuffer(50); 

      int current = 0; 
      while((current = bis.read()) != -1){ 
       baf.append((byte)current); 
      } 


      final String s = new String(baf.toByteArray());  
      ((TextView)tv).setText(s); 





     } catch (Exception e) { 
     } 
    }; 
+0

什麼是你所得到的問題? –

+0

http://stackoverflow.com/q/2902689/601868 – Natali

+0

它只是沒有顯示什麼是寫在我的服務器上的文本文件,它沒有顯示任何錯誤..但我沒有得到所需的resutl –

回答

1

試試這個功能....

public static String convertStreamToString(InputStream is) throws Exception { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 

     while ((line = reader.readLine()) != null) { 
      sb.append(line); 
     } 

     is.close(); 

     return sb.toString(); 
    } 
+0

你會請向我解釋如何用我的函數替換此函數,因爲我在實現此功能時遇到一些錯誤,我遇到了問題,我應該在哪裏放置鏈接到服務器上的文件。謝謝 –

0

試試這個代碼

URL url = new URL(urlpath); 
BufferedInputStream bis = new BufferedInputStream((url.openStream())); 
DataInputStream dis = new DataInputStream(bis); 
String full = ""; 
String line; 
while ((line=dis.readLine())!=null) { 
    full +=line;    
    }  
bis.close(); 
dis.close(); 

((TextView)tv).setText(full);