public class ReadSelectedLine {
        
        static void readLineVarFile(String fileName, int lineNumber) throws IOException {
                BufferedReader reader = new BufferedReader(new InputStreamReader(
                                new FileInputStream(fileName)));
                String line = reader.readLine();
                if (lineNumber < 0 || lineNumber > getTotalLines(fileName)) {
                        System.out.println("不在文件的行数范围之内。");
                }
                int num = 0;
                while (line != null) {
                        if (lineNumber == ++num) {
                                System.out.println("line     " + lineNumber + ":     " + line);
                        }
                        line = reader.readLine();
                }
                reader.close();
        }
        

        // 文件内容的总行数。    
        static int getTotalLines(String fileName) throws IOException {
                BufferedReader in = new BufferedReader(new InputStreamReader(
                                new FileInputStream(fileName)));
                LineNumberReader reader = new LineNumberReader(in);
                String s = reader.readLine();
                int lines = 0;
                while (s != null) {
                        lines++;
                        s = reader.readLine();
                }
                reader.close();
                in.close();
                return lines;
        }
        
        public static void main(String[] args) throws IOException {
                
                // 读取文件    
                String fileName = "d:/hst_23.txt";
                
                // 获取文件的内容的总行数    
                int totalNo = getTotalLines(fileName);
                System.out.println("There are "+totalNo+ " lines in the text!");
                
                // 指定读取的行号    
                int lineNumber = 10;
                
                //读取指定行的内容
                readLineVarFile("d:/hst_23.txt", lineNumber);        
        }
}