Чтение данных из файла в Android

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

Чтение данных из файла в Android

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

 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
            }

Но в терминале он не печатает всю строку файла. Вид результата в терминале такой: Чтение данных из файла в Android

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

печатать текст за пределами цикла while, возможно, это проблема с вашим логарифмом.

Rajat Mehra 05.07.2019 13:11

@RajatMehra Это не работает, возвращайте только четыре элемента

Mirko Marasco 05.07.2019 13:26

@MirkoMarasco посмотри мой ответ, он сработает для тебя .. :)

Prachi Singh 05.07.2019 14:19
0
3
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

...
String line;
while ((line = br.readLine()) != null) { 
   text.append(line);
   text.append('\n');
}
Log.d("YOUR_TAG", line);
...
Ответ принят как подходящий

Удалять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
    }

@Mirko рад помочь вам .. если ответ был полезен .. проголосуйте за ответ .. :)

Prachi Singh 05.07.2019 15:32

Другие вопросы по теме