0

我想知道如何逐个字符地从资产中读取文本文件。

例如,如果我有这个文件“text.txt”,里面有“12345”,我想一个一个地读取所有数字。

我已经在寻找这个,但我找不到任何解决方案。

谢谢。

4

3 回答 3

0

用于getAssets().open("name.txt")检索InputStreamon assets/name.txt,然后根据需要读入。

于 2012-12-15T23:43:40.640 回答
0

感谢 CommonsWare 的回答 :) 连同我回复 Eric 的链接,我确实添加了您的代码,结果如下(完全正常):

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();
    }
于 2012-12-16T00:04:00.647 回答
0

以字符为单位读取文件,通常用于读取文本、数字和其他类型的文件

public static char[] readFileByChars(File file) {
        CharArrayWriter charArrayWriter = new CharArrayWriter();
        char[] tempBuf = new char[100];
        int charRead;

        try {
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
            while ((charRead = bufferedReader.read(tempBuf)) != -1) {
                charArrayWriter.write(tempBuf, 0, charRead);
            }
            bufferedReader.close();
            return charArrayWriter.toCharArray();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
于 2021-11-09T10:50:29.600 回答