File file = new File("F:\\91sk\\zzc\\D3\\10133\\150010.win");
LineNumberReader fileRead = new LineNumberReader(new InputStreamReader(new FileInputStream(file)));
String str = fileRead.readLine();我现在想直接读取文本中第五行的内容应该怎么定位到第五行呀???
LineNumberReader fileRead = new LineNumberReader(new InputStreamReader(new FileInputStream(file)));
String str = fileRead.readLine();我现在想直接读取文本中第五行的内容应该怎么定位到第五行呀???
String str = fileRead.readLine();
import java.io.*;public class Test
{
public static String readLine(File aim, int lineIndex)
{
try
{
LineNumberReader lnr = new LineNumberReader(new FileReader(aim));
lnr.setLineNumber(lineIndex);
String value = lnr.readLine();
lnr.close();
return value;
}
catch(Exception ex)
{
ex.printStackTrace();
return null;
}
}
}
还是得循环读=。=
传入的行号直接指定行数即可,不用再从0开始,而是从1开始 public static String readAppointedLine(LineNumberReader reader, int lineNumber) throws IOException {
String value = null;
while (reader.readLine() != null) {
if (reader.getLineNumber() + 1 == lineNumber) {
return reader.readLine();
}
} return value;
}
这样有点问题把 .
return 后面的 不是当前的这一行了, 是下一行了, 因为 readline() 方法又执行了一遍!
确实有点问题,改了下
public static String readAppointedLine(LineNumberReader reader, int lineNumber) throws IOException {
String value = null;
while (reader.getLineNumber() < lineNumber) {
value = reader.readLine();
if (value == null) {
break;
}
}
return value;
}