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();
}
}