使用java,从文件夹位置提取列表文件名的最节省资源的方法是什么
使用Java,从文件夹位置提取文件名“列表”的最节省资源的方法是什么。目前,我正在使用以下代码:-使用java,从文件夹位置提取列表文件名的最节省资源的方法是什么,java,file,memory,io,Java,File,Memory,Io,使用Java,从文件夹位置提取文件名“列表”的最节省资源的方法是什么。目前,我正在使用以下代码:- File[] files = new File(folderLocation).listFiles(); 在遍历文件数组并仅转储文件名之前,请先将其转储到应用程序使用的哈希中。因此,请记住,我只需要文件名,有一种更节省内存的方法可以做到这一点 编辑: 我没有使用Java7 实际上,我没有遇到内存错误,但我开发的方法运行时间太长(20分钟),对于我正在开发的应用程序来说,这
File[] files = new File(folderLocation).listFiles();
在遍历文件数组并仅转储文件名之前,请先将其转储到应用程序使用的哈希中。因此,请记住,我只需要文件名,有一种更节省内存的方法可以做到这一点
编辑:
- 我没有使用Java7
- 实际上,我没有遇到内存错误,但我开发的方法运行时间太长(20分钟),对于我正在开发的应用程序来说,这不是一个现实的选择
final Path dir = Paths.get(folderLocation);
final List<String> names = new ArrayList<>();
try (
final DirectoryStream<Path> dirstream
= Files.newDirectoryStream(dir);
) {
for (final Path entry: dirstream)
list.add(entry.getFileName());
}
final Path dir=Path.get(folderLocation);
最终列表名称=新的ArrayList();
试一试(
最终目录流dirstream
=Files.newDirectoryStream(dir);
) {
for(最终路径条目:dirstream)
list.add(entry.getFileName());
}
另外,使用Java 7+还有:
final Path dir = Paths.get(folderLocation);
final List<String> names = new ArrayList<>();
try (
final DirectoryStream<Path> dirstream
= Files.newDirectoryStream(dir);
) {
for (final Path entry: dirstream)
list.add(entry.getFileName());
}
final Path dir=Path.get(folderLocation);
最终列表名称=新的ArrayList();
试一试(
最终目录流dirstream
=Files.newDirectoryStream(dir);
) {
for(最终路径条目:dirstream)
list.add(entry.getFileName());
}
另外,使用Java 7+还有:
final Path dir = Paths.get(folderLocation);
final List<String> names = new ArrayList<>();
try (
final DirectoryStream<Path> dirstream
= Files.newDirectoryStream(dir);
) {
for (final Path entry: dirstream)
list.add(entry.getFileName());
}
final Path dir=Path.get(folderLocation);
最终列表名称=新的ArrayList();
试一试(
最终目录流dirstream
=Files.newDirectoryStream(dir);
) {
for(最终路径条目:dirstream)
list.add(entry.getFileName());
}
另外,使用Java 7+还有:
final Path dir = Paths.get(folderLocation);
final List<String> names = new ArrayList<>();
try (
final DirectoryStream<Path> dirstream
= Files.newDirectoryStream(dir);
) {
for (final Path entry: dirstream)
list.add(entry.getFileName());
}
final Path dir=Path.get(folderLocation);
最终列表名称=新的ArrayList();
试一试(
最终目录流dirstream
=Files.newDirectoryStream(dir);
) {
for(最终路径条目:dirstream)
list.add(entry.getFileName());
}
还有,嗯,你可以查一下
javadoc中提到了它
路径getFileName()返回此路径表示为路径对象的文件或目录的名称 你可以查一下 javadoc中提到了它 路径getFileName()
返回此路径表示为路径对象的文件或目录的名称 你可以查一下 javadoc中提到了它 路径getFileName()
返回此路径表示为路径对象的文件或目录的名称 你可以查一下 javadoc中提到了它 路径getFileName()
返回此路径表示为路径对象的文件或目录的名称
您可以使用返回字符串[]的
(新文件(folderLocation)).list()
。每个字符串都是路径+分隔符+文件名。您可以从此字符串中提取文件名。您可以使用返回字符串[]的(新文件(folderLocation)).list()
。每个字符串都是路径+分隔符+文件名。您可以从此字符串中提取文件名。您可以使用返回字符串[]的(新文件(folderLocation)).list()
。每个字符串都是路径+分隔符+文件名。您可以从此字符串中提取文件名。您可以使用返回字符串[]的(新文件(folderLocation)).list()
。每个字符串都是路径+分隔符+文件名。您可以从该字符串中提取文件名。是否需要区分文件和目录。如果没有,您可以使用File中的list()函数返回一个字符串数组,该字符串命名由该抽象路径名表示的目录中的文件和目录。然后,您可以轻松地使用该列表构造哈希集。比如说,
String[] files = new File(folderLocation).list();
Set<String> mySet = new HashSet<String>(Arrays.asList(files));
String[]files=新文件(folderLocation).list();
Set mySet=newhashset(Arrays.asList(files));
还有一个list(FilenameFilter)函数,它接受文件名过滤器并返回字符串名列表。但是,它不允许您根据文件/目录进行筛选。您需要区分文件和目录吗。如果没有,您可以使用File中的list()函数返回一个字符串数组,该字符串命名由该抽象路径名表示的目录中的文件和目录。然后,您可以轻松地使用该列表构造哈希集。比如说,
String[] files = new File(folderLocation).list();
Set<String> mySet = new HashSet<String>(Arrays.asList(files));
String[]files=新文件(folderLocation).list();
Set mySet=newhashset(Arrays.asList(files));
还有一个list(FilenameFilter)函数,它接受文件名过滤器并返回字符串名列表。但是,它不允许您根据文件/目录进行筛选。您需要区分文件和目录吗。如果没有,您可以使用File中的list()函数返回一个字符串数组,该字符串命名由该抽象路径名表示的目录中的文件和目录。然后,您可以轻松地使用该列表构造哈希集。比如说,
String[] files = new File(folderLocation).list();
Set<String> mySet = new HashSet<String>(Arrays.asList(files));
String[]files=新文件(folderLocation).list();
Set mySet=newhashset(Arrays.asList(files));
还有一个list(FilenameFilter)函数,它接受文件名过滤器并返回字符串名列表。但是,它不允许您根据文件/目录进行筛选。您需要区分文件和目录吗。如果没有,您可以使用File中的list()函数返回一个字符串数组,该字符串命名由该抽象路径名表示的目录中的文件和目录。然后,您可以轻松地使用该列表构造哈希集。比如说,
String[] files = new File(folderLocation).list();
Set<String> mySet = new HashSet<String>(Arrays.asList(files));
String[]files=新文件(folderLocation).list();
Set mySet=newhashset(Arrays.asList(files));
还有一个list(FilenameFilter)函数,它接受文件名过滤器并返回字符串名列表。但是,它不允许您根据文件/目录进行筛选。我认为这是唯一的方法。您可以查看在列出文件时是否确实内存不足?我认为这是唯一的方法。您可以查看是否确实内存不足