1. 程式人生 > >(轉)Java按指定行數讀取文件

(轉)Java按指定行數讀取文件

readline system exceptio ted lines highlight select true cnblogs

package test  
import java.io.File;  
import java.io.FileReader;  
import java.io.IOException;  
import java.io.LineNumberReader;  
public class ReadSelectedLine{  
    // 讀取文件指定行。  
    static void readAppointedLineNumber(File sourceFile, int lineNumber)  
            throws IOException {  
        FileReader in = new FileReader(sourceFile);  
        LineNumberReader reader = new LineNumberReader(in);  
        String s = "";  
        if (lineNumber <= 0 || lineNumber > getTotalLines(sourceFile)) {  
            System.out.println("不在文件的行數範圍(1至總行數)之內。");  
            System.exit(0);  
        }  
        int lines = 0;  
        while (s != null) {  
            lines++;  
            s = reader.readLine();  
            if((lines - lineNumber) == 0) {  
             System.out.println(s);  
             System.exit(0);  
            }  
        }  
        reader.close();  
        in.close();  
    }  
    // 文件內容的總行數。  
    static int getTotalLines(File file) throws IOException {  
        FileReader in = new FileReader(file);  
        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 {  
        // 指定讀取的行號  
        int lineNumber = 2;  
        // 讀取文件  
        File sourceFile = new File("D:/java/test.txt");  
        // 讀取指定的行  
        readAppointedLineNumber(sourceFile, lineNumber);  
        // 獲取文件的內容的總行數  
        System.out.println(getTotalLines(sourceFile));  
    }  
}  

  

(轉)Java按指定行數讀取文件