网上看到这样一个方法如下,请问为什么要用LineNumberReader套BufferedReader呢,用BufferedReader不更简单么??public static void testLineNumberReader() { 
        try { 
            LineNumberReader lineNumberReader = new LineNumberReader(new BufferedReader(new FileReader(new File("C:\\x.txt"))));             String lineString;      //行字符串变量 
            int x = 0;              //行号 
            while ((lineString = lineNumberReader.readLine()) != null) { 
                x++; 
                System.out.println("行号:" + x + " >>>" + lineString); 
            } 
            lineNumberReader.close(); 
        } catch (FileNotFoundException e) { 
            e.printStackTrace(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 

解决方案 »

  1.   

    跟踪行号的缓冲字符输入流。此类定义了方法 setLineNumber(int) 和 getLineNumber(),它们可分别用于设置和获取当前行号。 默认情况下,行编号从 0 开始。该行号随数据读取在每个行结束符处递增,并且可以通过调用 setLineNumber(int) 更改行号。但要注意的是,setLineNumber(int) 不会实际更改流中的当前位置;它只更改将由 getLineNumber() 返回的值。 可认为行在遇到以下符号之一时结束:换行符('\n')、回车符('\r')、回车后紧跟换行符。 
      

  2.   

    从LZ的这段代码,没看出和BufferedReader的区别
    LineNumberReader应该封装了其他方法,只是在这段程序中没使用没体现出来,所以看不出区别。
      

  3.   

    public class LineNumberReader
    extends BufferedReaderA buffered character-input stream that keeps track of line numbers. 
      

  4.   

    对的,
    LineNumberReader继承了BufferedReader
    也就是传说中的LineNumberReader装饰了BufferedReader,
    增加设置行号和获得行号的功能。