目录下有1363万文件、我想用正则过滤一下需要的文件、java 的listFiles(FilenameFilter)方法会内存溢出、还有其他过滤文件的方法吗
这么多文件,最好不要直接目录过滤,不然很容易内存溢出。最好是分批读取文件。目录下是否有多个子目录,最好一次处理一个子目录。
public class MP3FileFilter implements FileFilter {
@Override
public boolean accept(File file) {
// TODO Auto-generated method stub
// return false;
if(file.isDirectory())
return true;
else
{
String name = file.getName();
if(name.endsWith(".mp3") || name.endsWith(".mp4"))
return true;
else
return false;
}
}
}