java枚举一个目录下的所有文件的有关问题
阅读
如果这个目录下的文件特别多,list超过了java内存,怎么办?
我记得C语言里枚举文件是通过next来不断获取下一个文件,这样避免了内存不足的问题,但是java里只有list方法,也就是一下子获取所有文件的对象,还有带筛选器的list,但里面的实现还是先list全部然后再迭代筛选。这样除了内存问题,还有个问题就是如果文件数超过了int.max,返回的信息就不对了。这怎么玩?
------解决思路----------------------
Java7已经提供了新的工具类Files。楼主,可以看看Java7的介绍
try(DirectoryStream<Path> dir = Files.newDirectoryStream(Paths.get("F:\\"))){
for(Path path : dir){
System.out.println(path);
}
/*
Iterator<Path> it = dir.iterator();
while(it.hasNext()){
Path path = it.next();
System.out.println(path);
}
*/
}
java核心技术第九版已经详细的介绍了这个类的使用!
阅读
上一篇:怎么证明interfac的方法都是public的 下一篇:返回列表