【问题标题】:Reading certain lines only from input?仅从输入中读取某些行?
【发布时间】:2012-04-21 14:40:58
【问题描述】:

如果我有一些代码,例如input = new BufferedReader(new FileReader(args[0])); 并且输入文件包含成对的行,我怎样才能使它只导入每行的第一行?换句话说,只有每条奇数行? 谢谢

【问题讨论】:

  • 读取所有行并忽略偶数行?

标签: java input


【解决方案1】:

您可能想考虑使用java.io.LineNumberReader 来简化奇数行(lineNo % 2 == 1)的过滤。或者在另一种方法中,如果您使用的是 JDK7,则可以使用 java.nio.files.Files.readAllLines() 方法并在迭代时再次过滤奇数。

【讨论】:

  • 如果我使用了它,然后做了类似String line = input.readLine();while (lineNo % 2 != 1) Do something` 这样的操作吗?
【解决方案2】:
String line = input.readLine();
while (line != null) {
   // do something with the line

   // Skip every other line
   input.readLine();
   // Get next line
   line = input.readLine();
}

【讨论】:

    【解决方案3】:

    这样的东西会读入文件,并在字符串缓冲区中为您提供每 2 行。

    BufferedReader br = new BufferedReader(new FileReader(args[0]));
    String line;
    StringBuffer endResult = new StringBuffer(1000);
    int lineNumber=1;
    while ((line=br.readLine()) != null) {
        //every odd line will be added, 1, 3, 5 etc
        if (lineNumber++%2==1) {
           endResult.append(line+"\n");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多