2016-08-03 25 views
-1

我嘗試打印存儲在應用程序內部存儲器內的文件的內容,但發生了一些奇怪的事情。Android:無法正確打印文件內容

這是函數:

public void print() throws IOException { 

    FileInputStream fin = fileContext.getApplicationContext().openFileInput("myfile"); 
    System.out.println("File Found"); 
    int c; 
    String temp = ""; 
    while ((c = fin.read()) != -1) { 
     temp = temp + Character.toString((char) c); 
     System.out.println(temp); 
    } 
    System.out.println(temp); 
    System.out.println("Please Print Something To Test"); 
    fin.close(); 

當我運行的同時cicle內的System.out作品完美的應用程序。但在同時cicle外Systm.out.println(temp)不叫的。
最奇怪的是System.out.println("Please Print Something To Test");被正確調用。 現在有什麼問題,我做錯了什麼?

編輯:這不是一個dublicate ..我看了所有其他線程,這是一個特定的情況下,沒有人有

+2

'temp'是「」,這就是爲什麼它不顯示。順便說一句,你需要關閉finally塊中的資源,因爲如果拋出異常,'fin'永遠不會關閉。 – m0skit0

+1

我不覺得標記的重複完全可以回答這個問題。僅僅是一個側面問題。 @ m0skit0評論更好地解答它。我標記爲重新打開 – Doomsknight

+0

@ m0skit0但臨時填充內部同時cicle ..然後在最後它應該填充完整的字符串.. –

回答

0

你可以嘗試使用這種方式,從文件中讀取:

File file = new File("myfile"); 
FileInputStream fis = null; 

try { 
    fis = new FileInputStream(file); 

    int content; 
    while ((content = fis.read()) != -1) { 
     // convert to char and display it 
     System.out.print((char) content); 
    } 

} catch (IOException e) { 
    e.printStackTrace(); 
} finally { 
    try { 
     if (fis != null) 
      fis.close(); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } 
} 
+1

用這種方式我解決不了我的問題..我想打印最終的字符串,而不打印一堆字符串裏面的一串.. –

+0

嗯。只需附加到一個數組列表或字符串數​​組,而不是打印每個字符。然後在循環外打印出來。我認爲這很容易:) – alway5dotcom