当前位置: 首页 > 知识库问答 >
问题:

使用BufferedReader跳过行

冀鸿才
2023-03-14

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

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

共有2个答案

刘永望
2023-03-14

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

       if (face == '#') {
           continue;
       }
       else {
           faceList.add(face);
       }
谈琛
2023-03-14

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

在主循环的每次迭代中,将一行完整的内容读入一个字符串。接下来,检查它是否与您想要忽略的特定模式匹配(空,仅空白,以#开头,等等)。一旦你有了一行你想要处理的内容,如果你需要的话,只需要一次迭代一个字符。

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

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

 类似资料:
  • 对于我正在开发的应用程序,我有一个文本文件,我想使用BufferedReader读取它。文本文件中的前四行可能不相关,所以我不想读这些。我看了BufferedReader上的留档,我看到我可以使用BufferedReader.skip(字节),在那里我输入要跳过的字节数。然而,文本文件中的前四行并不总是包含相同数量的信息,所以我认为这并不真正适合我的目的。你们知道如何以更实际的方式解决这个问题吗?

  • 问题内容: 我正在使用以下内容读取文件的各行, 现在,我想跳过读取文件的第一行,并且不想使用计数器行来保持行数。 这该怎么做? 问题答案: 你可以试试这个

  • 问题内容: 从CSV读取数据时,它会跳过第二行。我有两个CSV文件,一个用于用户,一个用于属性-密钥ID是user。 我与以下用户一起运行 每个奇数编号都在工作,并且检测到用户已登录,而第二个奇数编号正在跳过。我阅读了一下,但我不认为我有.nextLine()正在像此链接中那样跳过,但是我只在星期五开始使用CSV和BufferedReader! 问题答案: 它跳过第二行,因为您在每次迭代中都读取两

  • 我使用下面的读取文件的行, 现在,我想跳过读取文件的第一行,我不想使用计数器行来记录行数。 这要怎么做?

  • 因此,我正在阅读一个文件,其中包含我在前面代码中写到的约会。我想在文本文件中搜索某个日期的约会并将其添加到ArrayList中,但当BufferedReader遍历它时,它会跳过其他行...这是我的代码