File file = new File("F:\\91sk\\zzc\\D3\\10133\\150010.win");
LineNumberReader fileRead = new LineNumberReader(new InputStreamReader(new FileInputStream(file)));
String str = fileRead.readLine();我现在想直接读取文本中第五行的内容应该怎么定位到第五行呀???

解决方案 »

  1.   

    fileRead.setLineNumber(4);
    String str = fileRead.readLine();
      

  2.   

    行号从0开始,第5行的行号为4,readLine方法会读取当前行号所代表的行,然后将当前行号加1
    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;
    }
    }
    }
      

  3.   

    测试了一下,发觉不能实际改变行位置。api文档提示,该修改只能改变getLineNumber的值
    还是得循环读=。=
      

  4.   

    重新写了个方法,调用该方法返回指定行,如果超出范围返回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;

      

  5.   


    这样有点问题把 .
    return 后面的 不是当前的这一行了, 是下一行了, 因为 readline() 方法又执行了一遍!
      

  6.   


    确实有点问题,改了下
        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;
        }
      

  7.   

    只用java类库,貌似只能这样了
      

  8.   

    看看API也行会对你有帮助的~!