从Java中的文本文件中读取行

时间:2011-07-10 09:02:06

标签: java file io

我正在尝试从一些文本文件中读取产品信息。在我的文本文件中,我有产品及其信息。

这是我的档案:

Product1:

ID: 1232
Name: ABC35

InStock: Yes

如您所见,某些产品的产品信息中有空行,我想知道是否有任何好方法可以确定该行是否为空白,然后阅读下一行。

我怎样才能做到这一点?如果读数行为空白,则读取下一行。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

我想我可能会误解。假设您有一个BufferedReader,那么您的主要处理循环将是:

br = /* ...get the `BufferedReader`... */;
while ((line = br.readLine()) != null) {
    line = line.trim();
    if (line.length() == 0) {
        continue;
    }

    // Process the non-blank lines from the input here
}

更新:重新评论:

  

例如,如果我想读取名称后的行,如果该行为空或空,我想在此之后读取该行。

上面是我如何构建我的处理循环,但如果你愿意,你可以简单地使用一个返回下一个非空白行的函数:

String readNonBlankLine(BufferedReader br) {
    String line;

    while ((line = br.readLine()) != null) {
        if (line.trim().length() == 0) {
            break;
        }
    }
    return line;
}

返回null的EOF,如readLine,或返回不完全由空格组成的下一行。请注意,它不会从行中删除空格(我上面的处理循环确实如此,因为通常在我这样做的时候,我希望修剪掉空格,即使它们不是空白的。)

答案 1 :(得分:2)

只需循环遍历文件中的所有行,如果其中一行为空,则忽略它。

要测试它是否为空,只需将其与空字符串进行比较:

if (line.equals(""))

但这不适用于带有间距字符(空格,制表符)的行。所以你可能想做

if (line.trim().equals(""))

答案 2 :(得分:1)

尝试检查线的长度:

 String line;
 while((line= bufreader.readLine()) != null)
    if (line.trim().length() != 0)
       return line;