您的位置:首页 > 其它

字符流小说 分页功能!

2016-03-08 21:40 375 查看
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)+”“);

}

}

代码很简单不解释!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: