package com.gac.zsz;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderTest {
private BufferedReader in;
public boolean isEnd = false;//是否读取到文件末尾
private int pageLines = 20;//一页数据20行
private String path;
int currentPage;
int totalLines;
int pageCount;
public FileReaderTest(String fileAbsolutePath){
path = fileAbsolutePath;
initData();
}
private void initData(){
currentPage = 1;
totalLines = setTotalLines();
if(totalLines %20 == 0){
pageCount = totalLines/20;
}else{
pageCount = totalLines/20 +1;
}
}
//获取总页数
public int getPageCount(){
return pageCount;
}
//获取总行数;
public int getTotalLines(){
return totalLines;
}
private int setTotalLines(){
int total = 0;
try {
in = new BufferedReader(new FileReader(path));
String str = in.readLine();
while(in.readLine() != null){
total++;
}
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return total;
}
//获取第page 页的数据
public String seek(int page){
String str = null;
if(page > pageCount){
return null;
}else{
str = read(page);
}
return str;
}
private String read(int page){
StringBuffer sb = new StringBuffer();
try {
in = new BufferedReader(new FileReader(path));
for(int i = 0; i < 20*(page-1); i++){
//走过前n-1数据
in.readLine();
}
for(int k = 0; k < 20; k++){
sb.append(in.readLine()+"\n");
}
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sb.toString();
}
}
测试类:
package com.gac.zsz;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.InputStream;
public class InputTest {
public static void main(String[] args){
FileReaderTest read = new FileReaderTest(“E://2.txt”);
System.out.println(“pageCount:”+read.getPageCount());
System.out.println(“totalLines:”+read.getTotalLines());
System.out.println( read.seek(1)+”“);
System.out.println( read.seek(6254)+”“);
}
}
代码很简单不解释!!!!