JAVA如何读取大容量TXT文件

我读取大容量TXT文件他报数组越界。因为小容量文件他是没有这个问题的。不知道如何修改?... 我读取大容量TXT文件 他报数组越界。因为小容量文件他是没有这个问题的。 不知道 如何修改? 展开
 我来答
墨紫音
2015-10-02 · TA获得超过1.8万个赞
知道大有可为答主
回答量:2390
采纳率:56%
帮助的人:1047万
展开全部
java读取txt文件内容。可以作如下理解:
首先获得一个文件句柄。File file = new File(); file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。
通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了。接下来需要解读成乙方可以理解的东西
既然你使用了FileInputStream()。那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据
解读完成后要输出呀。那当然要转换成IO可以识别的数据呀。那就需要调用字节码读取的方法BufferedReader()。同时使用bufferedReader()的readline()方法读取txt文件中的每一行数据哈。
kak520
2012-10-27 · TA获得超过687个赞
知道小有建树答主
回答量:433
采纳率:0%
帮助的人:442万
展开全部
报数组越界跟文件大小没有关系,是你读取到了数组大小以外的数据
如定义数组String[] a = new String[5];
你可以使用a[0],a[1]....a[4]访问,当你使用a[5]时,就报这个错误了!
请确认你代码中的循环都是从0开始!
追问
问题是我读小容量文件是没有问题的。文件都是一样的格式。是不是JAVA读取文本不能读太大的文件呢?我文件大概1,2G吧
追答
文件太大的异常都是内存溢出,而不是数组越界,请仔细查看异常信息。
在32位系统中,java最大可用内存好像是2G,64位内存则无限制,但也要看你硬件配置。
而且处理文本文件时,也不要全部加载进内存,都是用到的时候加载,这样内存使用就会很小,就算是1.2G的文件,检索、查看等都是非常快的,如果你一次性加载,速度会很慢。
再说了,你的异常只是数组越界的话,那肯定不是内存的问题,而是你取的数组内容超过你定义的大小,请在访问之前获取数组大小来判断!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友12ee0fd
2012-10-27 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:1963万
展开全部
多大容量,问题要说清楚,不要含含糊糊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
招商我帮您找
2012-10-27 · 贡献了超过196个回答
知道答主
回答量:196
采纳率:0%
帮助的人:84.5万
展开全部
不着调啊,百度去啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式