关于JSR-75读取大文件的问题

tnds 2008-06-14 02:58:04
我有一个大概2M左右的文件,用fis.read(b,0,(int)filesize)读取之后总是OutOfMemoryError,请问应该怎么做?
...全文
96 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tnds 2008-06-21
  • 打赏
  • 举报
回复
不好意思,能具体说一下吗?
我的计划是一个以一定格式存储的公交信息文件,格式是线路名,线路数据
然后我需要进行一定的搜索操作,因为JSR-75不支持直接针对文件的搜索定位操作,因此我打算先把数据读入一个大数组(比如1100X7),顺便问一下这个数组是否符合J2ME的内存需求),然后进行搜索,不知道这样是否可行?
pipi_jf 2008-06-21
  • 打赏
  • 举报
回复
首先,你的数据结构有问题。对于这种大容量数据的搜索应该有个起码的索引表,而不是简单的把所有的东西都放在一堆。

其次,如果你不打算修改数据结构,那么可以采用分段读取的方式。
举个简单的例子,你可以把所有的数据分成两半,先把前一半数据读出来,然后进行搜索,如果没有找到,则再读取后一般。这样你的内存需求就减小了一半。
pipi_jf 2008-06-16
  • 打赏
  • 举报
回复
不OutOfMemoryError才奇怪了呢。
干嘛一定要把这个数组读出来啊?
直接用流就是了啊
oo 2008-06-15
  • 打赏
  • 举报
回复
2M,你以为在PC上呀
一次读少一点呀
xueyong1203 2008-06-15
  • 打赏
  • 举报
回复
多线程小段读取

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧