2014-12-06 110 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循环的if语句,像

  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行以上的概率,格式就像一本书,这意味着它有断行来分隔段落。但是,当我在textview中显示它时,这些换行符不存在。 – user3711421 2014-12-06 01:42:59

+0

如果您看起来没有看到空字符串,则该行不为空,或者您没有正确测试空字符串。 'if(reader.readLine()。equals(“”))'必须工作。 – 2014-12-06 01:50:30