我正在尝试从一些文本文件中读取产品信息。在我的文本文件中,我有产品及其信息。
这是我的档案:
Product1: ID: 1232 Name: ABC35 InStock: Yes
如您所见,某些产品的产品信息中有空行,我想知道是否有任何好方法可以确定该行是否为空白,然后阅读下一行。
我怎样才能做到这一点?如果读数行为空白,则读取下一行。
提前感谢您的帮助。
答案 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;