在使用BufferedReader读取文件时,我希望它跳过以'#'开头的空行和行。最终,每个角色都被添加到一个arraylist
inputStream = new BufferedReader(new FileReader(filename));
int c = 0;
while((c = inputStream.read()) != -1) {
char face = (char) c;
if (face == '#') {
//skip line (continue reading at first char of next line)
}
else {
faceList.add(face);
}
除非我弄错了,否则BufferedReader会自动跳过空白行。除此之外,我将如何做到这一点?
我会跳过()吗?线条的长度可能会有所不同,所以我认为这不会起作用。
答案 0 :(得分:7)
不要尝试一次读取一个字符。
在主循环的每次迭代中,在一个完整的行中读入String
。接下来,检查它是否与您要忽略的特定模式匹配(空,仅空白,以#
开头等)。一旦有了想要处理的行,只有在需要时才一次遍历String
一个字符。
这使得检查和忽略与模式MUCH匹配的空行和行更容易。
while((line=in.readline()) != null)
{
String temp = line.trim();
if (temp.isEmpty() || temp.startsWith("#"))
/* ignore line */;
else
...
}
答案 1 :(得分:-1)
使用continue
。这将继续到任何循环中的下一个项目。
if (face == '#') {
continue;
}
else {
faceList.add(face);
}