我遇到了FileReader类的一些问题。关于Java文件读取器的问题
我该如何在它所经过的行中指定偏移量,以及如何告诉它何时停止? 比方说,我希望它通过.txt文件中的每一行,但只有行100-200,然后停止?
我该怎么做?现在我使用ReadLine(),但我不认为有办法指定偏移量。
任何快速帮助非常感谢。谢谢。
我遇到了FileReader类的一些问题。关于Java文件读取器的问题
我该如何在它所经过的行中指定偏移量,以及如何告诉它何时停止? 比方说,我希望它通过.txt文件中的每一行,但只有行100-200,然后停止?
我该怎么做?现在我使用ReadLine(),但我不认为有办法指定偏移量。
任何快速帮助非常感谢。谢谢。
阅读所有的行,但使用另一个变量来计算你在哪一行。如果您处于不想处理的行(例如,在第100行之前),请拨打continue
,如果您不想处理更多行(在第200行之后),请拨打break
。
当然。谢谢。 – 2010-03-19 20:07:44
你不行。 FileReader一次读取一次或一行字符。显然,你可以编写自己的代码来扩展或包装它以跳过不需要的行。
另一方面:小心使用FileReader或FileWriter - 它们使用默认的LOCALE字符集。如果你想强制一个字符集使用OutputStreamWriter或InputStreamReader。实施例
作家W =新的FileWriter(文件)可以通过 Writer来替换W =新OutputStreamWriter(新FileOutputStream中(文件), “UTF-8”); < ===看看我可以如何设置字符集。
有没有办法告诉读者只读某些行,你可以使用一个计数器来做到这一点。
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();
java.io.FileReader不具有的readLine()方法。 java.io.BufferedReader的确。我假设你的意思是BufferedReader? – 2010-03-19 19:41:59