A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨杰 黑马帝   /  2011-11-17 19:33  /  1673 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

那个java编的类似于记事本的东东,功能倒是实现了,但也发现了一个问题。
在打开一个TXT文件后,如果里面的内容较少还行,但如果稍大点。比如,我打开了一本100W+字的小说,光读取就直接卡住了,最后只得用任务管理器关了。
但在Windows里面就没有这种问题啊,自带的记事本打开文件,那速度相对java而言简直太快了。
这个,求解释,求知识普及。

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 遇见过类似的。

查看全部评分

2 个回复

倒序浏览
你是用的IO流么?如果是的话,是不是没加缓存啊?不加缓存要是读取大一点的东西一定会卡的。
                                                byte[] b = new byte[1024];
                        int len = 0;
                        String s1 = new String(b,0,len,"GBK");
                        while((len=is.read(b))!=-1){
                        System.out.println("客户端发来的消息为:"+new String(b,0,len,"GBK"));
                       
                        }
这是缓存的例子,我代码中的一部分,你可以分析下。如果还卡的话你可以将1024换成1024*5。加油哦!

评分

参与人数 1技术分 +1 收起 理由
宁超 + 1 回答有奖。

查看全部评分

回复 使用道具 举报
你可以看看开源工具JEdit的代码
读取文件肯定还是主要用到io包和nio包的api 你看看它是怎么调用的
按字符读,按字节读,加不加缓存,对于速度影响挺大的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马