只从输入中读取某些行?

时间:2012-04-21 14:40:58

标签: java input

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

String line = input.readLine();
while (line != null) {
   // do something with the line

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

答案 2 :(得分:0)

这样的东西将在文件中读取,并在字符串缓冲区中为每个第二行提供。

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");
    }
}