Итак, я пытался прочитать текстовый файл размером около 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 символа.
Короче говоря, приведенный выше код работает так же хорошо!