public static void readForPage(File sourceFile, int pageNo,int pageSize) 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 startRow = (pageNo - 1) * pageSize + 1; int endRow = pageNo * pageSize; int lines = 0; System.out.println("startRow:"+startRow); System.out.println("endRow:"+endRow); while (s != null) { lines++; s = reader.readLine(); if(lines >= startRow && lines <= endRow) { System.out.println("line:"+lines+":"+s); //System.exit(0); } } reader.close(); in.close(); }
這樣調用:java
public static void main(String[] args) { // 指定讀取的行號 int lineNumber = 2; // 讀取文件 //File sourceFile = new File("D:/java/test.txt"); File sourceFile = new File("D://1.txt"); try { readForPage(sourceFile, 5, 8); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }