Чтение данных из файла в Android - PullRequest
0 голосов
/ 05 июля 2019

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

enter image description here

Я читаю эти данные со следующим кодом:

 File sdcard = Environment.getExternalStorageDirectory();

            //Get the text file
            File file = new File(sdcard,"data.txt");

            //Read text from file
            StringBuilder text = new StringBuilder();

            try {
                BufferedReader br = new BufferedReader(new FileReader(file));
                String line;

                while ((line = br.readLine()) != null) {
                    text.append(line);
                    text.append('\n');
                    System.out.println(line); //print the result on terminal
                }

                br.close();
            }
            catch (IOException e) {
                //You'll need to add proper error handling here
            }

Но в терминале он не печатает всю строку файла. Результат в терминале выглядит так: enter image description here

В этом случае отображаются только последние четыре данных, а в других случаях отображается все. Я не могу понять почему. Может кто-нибудь мне помочь? Заранее спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 05 июля 2019

Удалите System.out.println() из цикла while и напишите свой окончательный текст в Log.d() вне цикла

 File sdcard = Environment.getExternalStorageDirectory();

    //Get the text file
    File file = new File(sdcard, "data.txt");

    //Read text from file
    StringBuilder text = new StringBuilder();

    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line;

        while ((line = br.readLine()) != null) {
            text.append(line);
            text.append('\n');
        }
        Log.d("Activity","Final Text----->"+text);
        br.close();
    } catch (IOException e) {
        e.printStackTrace();
        //You'll need to add proper error handling here
    }
0 голосов
/ 05 июля 2019

Попробуйте это:

...
String line;
while ((line = br.readLine()) != null) { 
   text.append(line);
   text.append('\n');
}
Log.d("YOUR_TAG", line);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...