2014-12-06 4 views
0

Я пишу приложение, где я читаю текстовый файл, расположенный в папке с моими ресурсами.Чтение из текстового файла, пустые строки пропускаются

Допустим, что мой текстовый файл выглядит следующим образом.

1.Hello 
2. 
3.world 
4.again 

И я использую BufferedReader, чтобы читать его по строкам (мне нужно только три первых).

 BufferedReader reader = new BufferedReader(
       new InputStreamReader(result.getContext().getAssets().open("file.txt"))); 
     string text; 
     for (int x=0;x<3; x++) { 
      text += reader.readLine(); 
     } 

Выход будет «helloworld». Как я могу получить его, чтобы выглядеть следующим образом:

hello 

world 

Я хоть BufferedReader включены пустые строки из текстового файла: S.

Я попытался вручную создать этот разрыв строки я хотел с если заявление внутри для цикла, как

  for (int x=0;x<4; x++) { 
      String s = reader.readLine(); 
      if(s.equals("")){ 
       text+="\n"; 
      }else { 
       text += s; 
      } 

ответ

0

От Java документации BufferedReader#readLine() возвращается:

Строка, содержащая содержимое поля строка, не включая символы окончания строки, или null, если конец потока достигнут

См. BufferedReader.

Вы должны добавить новый символ строки вручную для цикла, как вы предложили, проверив пустую строку.

+0

Проблема в том, что я попытался найти способ узнать, была ли пустая строка прочитана, но кажется, что ее нельзя судить. Ни один из них не будет работать> reader.readLine(). IsEmpty() // или> .equals ("") (null) ("\ n"). Может быть, есть лучший способ сделать то, что я хочу сделать? Мой текстовый файл имеет более 50 строк и отформатирован как книга, что означает, что он имеет разрывы строк для разделения абзацев. Но когда я показываю его в текстовом виде, эти разрывы строк не существуют. – user3711421

+0

Если вы не видите пустую строку, то строка не пуста или вы не будете правильно тестировать пустую строку. 'if (reader.readLine(). equals (" "))' должен работать. –

Смежные вопросы