Как читать текстовый файл по символам в Android?

Я хотел бы знать, как я могу прочитать текстовый файл из активов посимвольно.

Например, если у меня есть этот файл "text.txt" и внутри него "12345", я хотел бы прочитать все числа один за другим.

Я уже искал это, но я не могу найти никакого решения.

Спасибо.


person Th3lmuu90    schedule 15.12.2012    source источник
comment
Все ли символы в файле однобайтовые? Затем просто используйте этот вопрос, чтобы получить массив байтов, и каждый из них будет представлять символ, который можно превратить в String.   -  person Eric    schedule 16.12.2012
comment
Я уже использую пример, приведенный на этой странице: java2s. com/Code/Java/File-Input-Output/ Но он не находит мой файл в папке с ресурсами. Код: файл файл = новый файл (имя.txt);   -  person Th3lmuu90    schedule 16.12.2012


Ответы (2)


Используйте getAssets().open("name.txt"), чтобы получить InputStream на assets/name.txt, затем прочитайте его, как хотите.

person CommonsWare    schedule 15.12.2012
comment
Спасибо, я ответил с окончательным результатом ;) - person Th3lmuu90; 16.12.2012

Спасибо 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();
    }
person Th3lmuu90    schedule 16.12.2012