1

在使用 BufferedReader 读取文件时,我希望它跳过以“#”开头的空行和行。最终,每个单独的字符都被添加到一个数组列表中

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 会自动跳过空行。除此之外,我该怎么做呢?

我会跳过()吗?线条的长度可能会有所不同,所以我认为这行不通。

4

2 回答 2

7

不要尝试一次读取文件一个字符。

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

这使得检查和忽略空白行和匹配模式的行变得更加容易。

while((line=in.readline()) != null)
{
    String temp = line.trim();
    if (temp.isEmpty() || temp.startsWith("#"))
        /* ignore line */;
    else
        ...
}
于 2013-10-18T22:35:16.277 回答
-1

使用continue. 这将继续到任何循环中的下一个项目。

       if (face == '#') {
           continue;
       }
       else {
           faceList.add(face);
       }
于 2013-10-18T22:29:27.907 回答