字符流小说 分页功能!
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();
}
测试类:
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)+”“);
}
}
代码很简单不解释!!!!
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)+”“);
}
}
代码很简单不解释!!!!
相关文章推荐
- arp命令
- windows+ubuntu引导修复
- arm9的中断
- Docker入门教程(九)10个镜像相关的API
- Linux-github 搭建静态博客
- UITextView 文本垂直居中
- 全注解整合ssh
- Android studio 导入xutils3报错
- 单词数 (HDU_2072) 字典树
- 用户首选项
- Hdu 5016 Baby Ming and Matrix games【dfs】
- 备份oracle数据脚本
- 深入理解CSS
- RM2016视觉开源OpenCv2代码
- Android:分页下载示例(PullToRefresh)
- MMU与cache
- 从NavigationController 下的UITableView中移除 header
- 稀疏矩阵的压缩存储及其两种转置算法
- bzoj4421 Digit Division 递推
- 谢泽文的C++第一次实验报告2