file.listFiles()内存溢出如何解决?

mdjz 2009-08-24 09:55:47
想做一个根据文件名查找某个文件夹下的文件功能, 由于文件夹非常庞大, 导致使用file.listFiles()时内存溢出, 调整虚拟机参数也不行, 怎么解决?
...全文
2675 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
x-teamer团队 2009-08-24
  • 打赏
  • 举报
回复 1
[Quote=引用 11 楼 mdjzjt 的回复:]
感谢大家, 搞定了, 找到了一个笨蛋方法, 效率上还行 哈哈 谢谢 结贴了
[/Quote]

分享一下吧~
u010630577 2021-07-02
  • 举报
回复
@x-teamer团队 怎么解决的?分享一下呗!
diggywang 2009-08-24
  • 打赏
  • 举报
回复
里面肯定有大的zip之类的压缩文件
wenzheng38 2009-08-24
  • 打赏
  • 举报
回复
可以了解下windows里面自带的搜索功能,它是基于B+数搜索的。。。
mdjz 2009-08-24
  • 打赏
  • 举报
回复
感谢大家, 搞定了, 找到了一个笨蛋方法, 效率上还行 哈哈 谢谢 结贴了
APOLLO_TS 2009-08-24
  • 打赏
  • 举报
回复
java调用系统命令操作返回值即可查看!!

window

cd 需要查看的目录

dir 匹配串 /s/p

Linux

find 路径 模式
skyzxl 2009-08-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sixme 的回复:]
1.直接使用你需要查找的文件
2.如果存在则可以正常使用
3.如果不存在则会抛出“FileNotFound”异常,捕获即可
[/Quote]

问题可能是这样。
bigbug9002 2009-08-24
  • 打赏
  • 举报
回复
还有就是用 File[] listFiles(FilenameFilter filter) 用过滤器把需要的文件和目录保存下来,不需要的就不用保存了。
bigbug9002 2009-08-24
  • 打赏
  • 举报
回复
把递归算法,改为非递归算法。试试看
lookhang 2009-08-24
  • 打赏
  • 举报
回复
1.直接使用你需要查找的文件
2.如果存在则可以正常使用
3.如果不存在则会抛出“FileNotFound”异常,捕获即可
monkeyking1987 2009-08-24
  • 打赏
  • 举报
回复
当然会喽。如果一个文件夹下有上千个文件,调用file.listFiles()方法是很容易就把内存给占满了。此时可以判断一下file.listFiles()获得的文件数量,而在程序中只保留文件名,在需要时再调用相应的方法将文件内容给读出来就可以了。不要把所有文件的内容全加载进去。
closewbq 2009-08-24
  • 打赏
  • 举报
回复
这个网站介绍了相关东西,你可以去看下
http://study.feloo.com/news.php?id=197594
closewbq 2009-08-24
  • 打赏
  • 举报
回复
你是不是递归调用?如果是的话,就是在递归过程中不断的分配资源,而当只有最深层的目录完成后,才能释放这些资源,就有可能溢出。
lookhang 2009-08-24
  • 打赏
  • 举报
回复
我可能也会遇到这个问题~~~先做个记号~
knightzhuwei 2009-08-24
  • 打赏
  • 举报
回复
简单的文件夹行不?你把代码列出来看看。。

62,635

社区成员

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

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