2012-12-15 109 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(); 
    } 
相关问题