android阅读器里的 txt 文本处理分页功能的实现:
txt 文本处理分页功能的实现:
网上找了txt文本分页,实现小说阅读器的功能找了很久找不到自己想要的,所以自己实现一个专门处理txt文本分页功能的类.有人建议用randomAccessFile 可以随机读取文本的任意位置,大文本也可以读,直接从这个类的方法上找可以实现自己想要的功能.
文本阅读器最重要的功能就是,我点击一个按钮或者滑动一下屏幕就可以是上一页或者下一页。
这个类应该公布两个方法 得到上一页文本内容,得到下一页文本内容。
废话不多说直接上代码:
public class ProcessText {
private long pages;//总页数
private final int SIZE = 900;//每一页的字节数 字节数固定
private long bytescount;//字节总数
private long currentpage;//当前页面
private RandomAccessFile readFile;
//构造方法 传入当前页 为了实现书签的功能 记录用户读取的文章位置
public ProcessText(File file,int currentpage) {
try {
readFile = new RandomAccessFile(file,"r");
bytescount = readFile.length();//获得字节总数
pages = bytescount/SIZE;//计算得出文本的页数
this.currentpage=currentpage;
} catch (Exception e) {
e.printStackTrace();
}
}
//定位字节位置 根据页数定位文本的位置
private void seek(long page){
try {
//if(pages)
readFile.seek(page*SIZE);
} catch (IOException e) {
e.printStackTrace();
}
}
//固定读取 SIZE+30个字节的内容 为什么+30 ?
//读取的为字节 需要进行转码 转码不可能刚好转的就是文本内容,
//一页的末尾 和开始出有可能乱码 每一次多读30个字节 是为了第一页乱码位置
//在第二页就可以正常显示出内容 不影响阅读
private String read(){
//内容重叠防止 末尾字节乱码
byte[] chs = new byte[SIZE+30];
try {
readFile.read(chs);
} catch (IOException e) {
e.printStackTrace();
}
return new String(chs, Charset.forName("utf-8"));
}
//上一页功能的实现
public String getPre(){
String content = null;
//第一页 的情况 定位在0字节处 读取内容 当前页数不改变
if(currentpage <= 1){
seek(currentpage-1);
content =read();
}else{
//其它页 则定位到当前页-2 处 在读取指定字节内容 例如当前定位到第二页的末尾 2*SIZE 上一页应该是第一页 也就是从0位置 开始读取SIZE个字节
seek(currentpage-2);
content = read();
currentpage = currentpage - 1;
}
return content;
}
//下一页功能的实现
public String getNext(){
String content = null;
if(currentpage >= pages){//当前页为最后一页时候,显示的还是 最后一页
seek(currentpage-1);
content = read();
}else{
seek(currentpage);
content = read();
currentpage = currentpage +1;
}
return content;
}
}
android阅读器里的 txt 文本处理分页功能的实现:相关推荐
- 【一年一个小知识】如何往kindle阅读器里传书?
1.kindle阅读器里自带kindle书城和咪咕阅读的书城,如果说不差钱,联网后可以直接在书城里买电子书. 2.我很抠门的,第一种方法我没用过.以前没有电脑,我是用WLAN传书.点击阅读器里 WLA ...
- 下载的小说是PDF文件,不能导入到小说阅读器里怎么办?
下载的小说是PDF格式的,我们可以把它转换成txt格式,然后就可以将小说导入到小说阅读器里啦~ 我们可以使用okfone PDF转换大师 官网地址将PDF版本的小说转换成txt格式 操作很简单,跟着我 ...
- 简单开发的android阅读器源码,包含了读取数据库和文件流处理功能
原文:简单开发的android阅读器源码,包含了读取数据库和文件流处理功能 源代码下载地址:http://www.zuidaima.com/share/1838906559466496.htm 简单地 ...
- Android阅读器的思路(一)
最近工作业务中遇到了,Android阅读器的需求.面临的第一个问题就是,如何根据屏幕的大小,将一本小说分成每一页需要显示的内容.简单来说,就是把一整本小说的String变成每一页恰好可以显示的Stri ...
- android 支持各种格式的阅读器,android txt小说阅读器的实现(完美实现分页阅读,支持常见编码格式)...
前一阵由于项目的需求,需要一个预览txt文件的功能,于是自己写了一个,简单的txt文件阅读器,实现了点击分页切换.滑动分页切换,效果如下: 既然做出来,想整理一下实现的思路,有时间再封装一下,做成一个 ...
- android 阅读器放大镜,制作安卓PDF阅读器:四、实现文本选择之放大镜、长按拖动...
看到一篇知乎上的文章,<这可能是最好用的一款 PDF 阅读.批注工具~如果他称第二,没人敢称第一!>,看了后下载试用,还好.单就触屏体验而言,没他说的那么好听. 这类国产APP的门面都是非 ...
- 开源能翻译英文的Android阅读器
Filter阅读是我最近写的一个Android的阅读器,用于看英文的书(中文暂时不支持,会乱码,下一版再改). 本文章由"智障的我"原创,转载注明. http://blog.csd ...
- 发布一个练笔的 Android 阅读器,轻微仿91 Android 阅读器【后续将提供源码】
由于是练笔Demo,所以界面上和优化方面并没有太多考虑,只是实现了一些基础功能和一些阅读器所必要的几个功能 阅读界面如下: 底下滚动条,模仿91阅读器的方式显示,按照文本长度百分比记算显示进度条,文本 ...
- android 阅读器自动滚动,在Android手机上实现阅读器翻页效果.doc
在Android手机上实现阅读器翻页效果 先了解各个字母表示的含义:A-把书页翻起来后看到的背面区域B-把书页翻起来后看到的下一页的一角C-当前页的可见部分.a-手指滑动页角到达的位置b-当前页翻起来 ...
最新文章
- 1 Knight Moves
- agg::rendering_buffer 渲染缓存
- Qt5.9生成dll详细步骤
- php调用百度天气接口,php使用百度天气接口示例
- 服务器虚拟化分为半,服务器虚拟化有哪些?
- sougou ubuntu 优麒麟_搜狗输入法 Linux – V2.3 版发布,完美适配优麒麟 19.10
- EXC_BAD_ACCESS
- 解决: Spring Boot报错 This application has no explicit mapping ... a fallback
- Android系统(96)---Android 数据交换解析框架Gson使用详解
- html流星雨代码_HTML制作流星雨特效
- python3.7中Gluonts与Mxnet安装问题
- java下载ftp_Java FTP下载文件
- MySQL(15)-----运算符和优先级查询结果拼接处理及CONCAT()、CONCAT_WAS()和GROUP_CONCAT()函数的使用
- 【Mybatis架构】Mapper映射文件中的#{}与${}
- 服务器上的 smb 协议,使用smb协议python3访问服务器上的远程文件
- C语言报错警告合集(转)
- java泛型常用特点_?你必须知道的Java泛型
- 在WORD中批量修改图片大小
- 支付宝/云闪付个人免签
- P2327 [SCOI2005]扫雷(递推)
热门文章
- MobileNet v2的Inverted Bottleneck为什么可以抵消ReLU激活函数所带来的信息损失
- windows下网络诊断基本命令
- sketch html尺寸,sketch教程 | 设置常用画板尺寸
- Time-Evolving Graph Convolutional Recurrent Network for Traffic Prediction论文笔记
- win7电脑给手机开热点流程
- java制作手机投射电脑_将Android手机投影到Win10计算机的最简单教程
- 高通骁龙MSM8916核心板 ARM Cortex-A53 四核 中文资料
- WS2812C IO口模拟控制
- ThinkPad开启、禁用触摸板
- python 输出列表中元素的位置_python如何读取列表中元素的位置?