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(); }
这样调用:
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(); } }
时间: 2024-10-02 22:51:22