求一个 Java 逆向读取大文本的设计思路

2015-07-22 22:29:18 +08:00
 1023400273
场景如下:
1、大文件,有可能是G级别,绝对可能一次性全部读取到内存
2、可以顺序读取一个字符(next Char),也可以逆向读取一个字符(prev Char),非一行
3、不出现乱码,字符编码已知

求大神指点迷津
2656 次点击
所在节点    Java
7 条回复
zj299792458
2015-07-22 22:43:49 +08:00
bufferedreader是有标记功能的,你读下一行之前把这一行标记,如果需要倒退就直接读取标记处。如果需要倒退好几行超出标记范围,从头读
Dnnel
2015-07-22 22:44:07 +08:00
关注
1023400273
2015-07-22 22:48:28 +08:00
@zj299792458 这样也仅仅只是倒退一行吧?我需要的是倒退一个字符,非一行
zonghua
2015-07-22 22:56:26 +08:00
今天晚上github下载缓慢吖
1023400273
2015-07-23 10:40:21 +08:00
抱歉写错
1、大文件,有可能是G级别,绝对不可能一次性全部读取到内存
dlllcs
2015-07-23 12:13:17 +08:00
使用 RandomAccessFile
kaneg
2015-07-23 22:55:36 +08:00
可以试试内存映射文件(Memory Mapped File)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/207647

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX