字符流小说 分页功能!

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)+”“);
}

}

代码很简单不解释!!!!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值