去看一下这个类的帮助:LineNumberReader

解决方案 »

  1.   

    LineNumberReader
    这个也不行 只有读完文件才行
     setlineNumber
      

  2.   

    用EDITPLUS打开个文件就知有多少行了。呵呵~~~~
      

  3.   

    偶说个异想天开的,开两个线程,一个从上往下遍历,一个从下往上,每计算一行就做一个特殊记号,当遇到有这个记号的行就表示两个线程相遇,就可以得出总数。用系统资源换取执行速度,可能会快一点。两个线程能同时操作一个文件不?偶突然想到的,还没试过,不要骂我,我都怕了CSDN。高手指点
      

  4.   

    to bromon(我的媳妇是....) 
    这样做可能省一半的时间,但是由于使用线程而增加了出错的可能性,似乎有点得不偿失;)
    我想,先用获取整个文件的长度,再一次性读到一个char[]中,再进行判断.由于减少了读文件的次数,是不是能减少读文件的时间呢?
      

  5.   

    一次读到char[]中再做操作可能会更慢,java操作字符流是一边缓冲以便处理,很明显这样的方式更合理。
    使用char[]和BufferedString究竟谁快我没有测试过
      

  6.   

    char[]也是对象
    String的实现是用char[]
    估计BufferedString的实现也是用char[]的
    刚把源码删了,不能查了,不过我记得是
      

  7.   

    可以了,下面的代码即可快速求出line值:
            File test= new File("test.txt");
            long fileLength = test.length();
            
            LineNumberReader rf = null;
            try {
                rf = new LineNumberReader(new FileReader(test));
                
                if (rf != null) {
                    int lines = 0;
                    rf.skip(fileLength);
                    lines = rf.getLineNumber();
                    rf.close();
                }
            } catch (IOException e) {
                if (rf != null) {
                    try {
                        rf.close();
                    } catch (IOException ee) {
                    }
                }
            }
      

  8.   

    奇怪拉 我昨天随便skip一个发现getlinenumber不对 就以为不能取 ,可惜了这么多的分数
      

  9.   

    以前没用过LineNumberReader这个类,受教
      

  10.   

    这是我以前写的一个,看看怎么样
    import java.io.*;public class GetFileLines {    public static void main(String[] args) throws IOException
        {
            int countLine = 0; // record the line of the file
            BufferedReader in;
            String s = new String(); // get the value of readLine();
            try {
                in = new BufferedReader(new FileReader(args[0]));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                return ;
            }
            while((s = in.readLine()) != null)
                countLine++;        System.out.println("The lines of files is " + countLine);    }
    }