Чтение большой строки из файла Android - PullRequest
0 голосов
/ 28 февраля 2019

Итак, я пытался прочитать текстовый файл размером около 40 КБ, используя Buffered Reader в Android.Дело в том, что одна из строк (в основном последней строки) файла превышает 9000 символов, которые трудно хранить в String и записать в нее.

Я попробовал этот подход ниже, но при превышении количества символов он отбрасывает анализ оставшихсячасть от линии.

  try {   
       File root = android.os.Environment.getExternalStorageDirectory();
       File file = new File (root.getAbsolutePath() + "/" + "new.txt");

       BufferedReader r = null;
       r = new BufferedReader(new FileReader(file));
       StringBuilder total = new StringBuilder();
       String line;
       while((line = r.readLine()) != null) {
          Log.e("Line",line);
          total.append(line);
        }
        r.close(); 
     } catch (Exception e) {
        e.printStackTrace();
  }

На которую я думал изменить String line на String line = new String(new byte[1024*1024]), может решить мою проблему.Но Android Studio выделяет это как избыточный код.Дело в том, что мне нужно применить некоторые регулярные выражения в каждой строке цикла while.

Есть ли какое-нибудь решение, которое я могу использовать.Кстати, вот моя ссылка на файл размером 40 КБ https://www.dropbox.com/s/hp7vn6vt86adv6g/new.txt?dl=0

Редактировать: файл, который я пытаюсь проанализировать, является HTML-файлом.

Обновлено

Я был не прав, строка в строке не пропускает остальную часть, как это было предложено skandigraun (из комментариев).Регистратор не печатал всю строку, потому что она превышала ограничение в 4000 символов, в то время как моя строка составляла 8093 символа.

Короче говоря, приведенный выше код работает так же хорошо!

...