日期:2014-05-20  浏览次数:20743 次

请教一下读取大文本的好方法,要求省内存一点。。
比如说又一个868M的文本类型的文件 这个文件虽然很大,但是迫不得已必须要仔细查看,而且经常打开翻看,现在要用java写一个程序来读取。
有如下要求(越往上越优先,不一定全部符合要求,希望尽力而为):

1.节省内存(或者说适合低配置的电脑,现在一个程序花100M内存我都觉得很大了)。
2.适合读大文件。
3.效率尽量高。

java读取文件的各种类我都试过 ,感觉效果都不太好,正在考虑要不要自己写一个类,无奈技术太差了。谁写得最好分数就给谁(我会保证80%的分归他的)。

------解决方案--------------------
你可以看看 sf.net 上的 Rowscope项目 http://rowscope.sourceforge.net/

Rowscope is a file viewer for large text files. It can read files larger than 1 GB.
It is very fast (a few seconds to examine a 1GB file) and it never blocks.
------解决方案--------------------
如果只是查找字符串而且用java的话,再大只要能一次性读入内存,我觉得jdk提供的那些功能类已经很“底层”了吧
------解决方案--------------------
LZ你自己设定一次读取多少行不就行了?要看后面的内容就再调用一次读取,只要每次读取都是同一个IO对象就行了,不要关了再new就行了。
------解决方案--------------------
探讨

采用分割读取吧Java code

import java.io.File;
import java.io.RandomAccessFile;
import java.nio.*;
import java.nio.channels.FileChannel;
import java.util.*;
import java.util.Map.Entry;

public class LogTest……

------解决方案--------------------
学习还可以接分,哈哈。
------解决方案--------------------
觉得,此贴还不错。

帮你顶一下。