【发布时间】:2012-04-21 14:40:58
【问题描述】:
如果我有一些代码,例如input = new BufferedReader(new FileReader(args[0])); 并且输入文件包含成对的行,我怎样才能使它只导入每行的第一行?换句话说,只有每条奇数行?
谢谢
【问题讨论】:
-
读取所有行并忽略偶数行?
如果我有一些代码,例如input = new BufferedReader(new FileReader(args[0])); 并且输入文件包含成对的行,我怎样才能使它只导入每行的第一行?换句话说,只有每条奇数行?
谢谢
【问题讨论】:
您可能想考虑使用java.io.LineNumberReader 来简化奇数行(lineNo % 2 == 1)的过滤。或者在另一种方法中,如果您使用的是 JDK7,则可以使用 java.nio.files.Files.readAllLines() 方法并在迭代时再次过滤奇数。
【讨论】:
String line = input.readLine();while (lineNo % 2 != 1) Do something` 这样的操作吗?
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 行。
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");
}
}
【讨论】: