2012-12-15 144 views
0

我想知道如何從資產角色逐字讀取文本文件。如何在Android中按字符讀取文本文件字符?

例如,如果我有這個文件「text.txt」,並在裏面「12345」,我想逐一讀取所有數字。

我已經找了這個,但我找不到任何解決方案。

謝謝。

+0

是否所有的字符在文件單字節?然後,只需使用[這個問題](http://stackoverflow.com/questions/10039672/android-how-to-read-file-in-bytes)來獲取一個字節數組,每個這些將代表一個字符可以轉向一個'String'。 – Eric

+0

我已經在使用本頁中給出的示例:http://www.java2s.com/Code/Java/File-Input-Output/Readfilecharacterbycharacter.htm但它沒有在assets文件夾中找到我的文件。代碼:「File file = new File(」name.txt「);」 – Th3lmuu90

回答

0

使用getAssets().open("name.txt")檢索assets/name.txt上的InputStream,然後根據需要將其讀入。

+0

謝謝,我回答了最終結果;) – Th3lmuu90

0

感謝CommonsWare你的答案:)隨着我的鏈接,我也回答了埃裏克,我沒有添加一段代碼,這裏是結果(全面工作):

AssetManager manager = getContext().getAssets(); 
    InputStream input = null; 
    try { 
     input = manager.open("test.txt"); 
    } catch (IOException e1) { 
     Log.d("ERROR DETECTED", "ERROR WHILE TRYING TO OPEN FILE"); 
    } 
    try { 
     char current; 
     while (input.available() > 0) { 
     current = (char) input.read(); 
     Log.d("caracter", ""+current); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

感謝您的幫助球員:)

編輯:下面的代碼將讀取所有文件線,而上面沒有:

AssetManager manager = getContext().getAssets(); 
    InputStream input = null; 
    InputStreamReader in = null; 
    try { 
     input = manager.open("teste.txt"); 
     in = new InputStreamReader(input); 
    } catch (IOException e1) { 
     Log.d("ERROR DETECTED", "ERROR WHILE TRYING TO OPEN FILE"); 
    } 
    try { 
     char current; 
     while (in.ready()) { 
     current = (char) in.read(); 
     Log.d("caracter", ""+current); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
相關問題