我在使用FileReader类时遇到了一些问题。
如何在经过的行中指定偏移量,如何判断何时停止? 假设我希望它遍历.txt文件中的每一行,但只有100-200行然后停止?
我该怎么做?现在我正在使用ReadLine(),但我认为没有办法用它指定偏移量。
任何快速帮助都非常感激。感谢。
答案 0 :(得分:3)
你不能。 FileReader一次读取一个字符或一次读取一行。显然,您可以编写自己的代码来扩展或包装它以跳到不需要的行。
抛开:小心使用FileReader或FileWriter - 它们使用默认的LOCALE字符集。如果要强制使用字符集,请使用OutputStreamWriter或InputStreamReader。实施例
Writer w = new FileWriter(file)可以替换为 Writer w = new OutputStreamWriter(new FileOutputStream(file),“UTF-8”); < ===看看如何设置字符集。
答案 1 :(得分:2)
读取所有行,但使用另一个变量来计算您所在的行。如果您在不想处理的行(例如,在第100行之前)和continue
,当您不想再处理任何行(在第200行之后)时调用break
答案 2 :(得分:1)
没有办法告诉读者只阅读某些行,你可以使用计数器来做。
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) { }
答案 3 :(得分:0)
BufferedReader in = new BufferedReader(new FileReader("foo.in"));
for(int i=0;i<100;i++,in.readLine()){}
String line101 = in.readLine();