我在使用 FileReader 类时遇到了一些问题。
如何在它通过的行中指定偏移量,以及如何告诉它何时停止?假设我希望它遍历 .txt 文件中的每一行,但只有第 100-200 行然后停止?
我该怎么做?现在我正在使用 ReadLine() 但我认为没有办法指定偏移量。
非常感谢任何快速帮助。谢谢。
我在使用 FileReader 类时遇到了一些问题。
如何在它通过的行中指定偏移量,以及如何告诉它何时停止?假设我希望它遍历 .txt 文件中的每一行,但只有第 100-200 行然后停止?
我该怎么做?现在我正在使用 ReadLine() 但我认为没有办法指定偏移量。
非常感谢任何快速帮助。谢谢。
你不能。FileReader 一次读取一个字符或一次读取一行。显然,您可以编写自己的代码扩展或包装它以跳到不需要的行。
顺便说一句:使用 FileReader 或 FileWriter 时要小心——它们使用默认的 LOCALE 字符集。如果要强制使用字符集,请使用 OutputStreamWriter 或 InputStreamReader。例子
Writer w = new FileWriter(file) 可以替换为 Writer w = new OutputStreamWriter(new FileOutputStream(file),"UTF-8"); <=== 看看我如何设置字符集。
阅读所有行,但使用另一个变量来计算您所在的行。continue
如果您在不想处理的行(例如,在第 100 行之前)以及break
不想再处理任何行(在第 200 行之后),请致电。
没有办法告诉读者只阅读某些行,您可以使用计数器来做到这一点。
try {
BufferedReader in = new BufferedReader(new FileReader("infilename"));
String str;
int lineNumber = 0;
while ((str = in.readLine()) != null) {
lineNumber++;
if (lineNumber >= 100 && lineNumber <= 200) {
System.out.println("Line " + lineNumber + ": " + str);
}
}
in.close();
} catch (IOException e) { }
BufferedReader in = new BufferedReader(new FileReader("foo.in"));
for(int i=0;i<100;i++,in.readLine()){}
String line101 = in.readLine();