使用BufferedReader跳过行

rhl*_*l13 1 java skip lines bufferedreader

在使用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);
           }
Run Code Online (Sandbox Code Playgroud)

除非我弄错了,否则BufferedReader会自动跳过空白行.除此之外,我该怎么做呢?

我会跳过()吗?线条的长度可能会有所不同,所以我认为这不会起作用.

Jim*_*son 7

不要尝试一次读取一个字符.

String主循环的每次迭代中读入一个完整的行,进入a .接下来,检查它是否与您要忽略的特定模式匹配(空,仅空白,以a开头#等).一旦有了想要处理的行,只有String在需要时才一次迭代一个字符.

这使得检查和忽略与模式MUCH匹配的空行和行更容易.

while((line=in.readline()) != null)
{
    String temp = line.trim();
    if (temp.isEmpty() || temp.startsWith("#"))
        /* ignore line */;
    else
        ...
}
Run Code Online (Sandbox Code Playgroud)