当前位置:首页 > 云服务器 > 正文

Java file集合怎么用,有哪些常用方法?

文件操作基础

在Java中,处理文件集合通常涉及java.io.File类和java.nio.file包。File类提供了基本的文件操作,而NIO.2在Java 7中引入,提供了更强大的功能。

使用File类

File类可以表示文件或目录的路径。

  • File file = new File("example.txt");
  • 方法:exists(), isDirectory(), listFiles()等。

文件集合的实现

可以使用List<File>或Set<File>来存储文件对象。

  • List<File> files = new ArrayList<>();
  • 添加文件:files.add(new File("doc.txt"));

遍历目录

使用File.listFiles()方法获取目录中的文件数组。

Java file集合怎么用,有哪些常用方法? 第1张

方法 描述
listFiles() 返回目录中的所有文件
listFiles(FilenameFilter) 过滤文件名

过滤文件

使用FilenameFilter或FileFilter接口。

  • FilenameFilter:接受目录和文件名。
  • 示例:file.listFiles((dir, name) -> name.endsWith(".txt"));

引入NIO.2

java.nio.file.Files类提供了静态方法,如walk()用于遍历目录树。

  • Files.walk(Path)返回一个Stream<Path>。
  • 示例:Files.walk(Paths.get(".")).filter(Files::isRegularFile).forEach(System.out::println);

Java file集合怎么用,有哪些常用方法? 第2张

示例代码

相关问题与解答

问题1:如何高效遍历整个目录树?

高效遍历目录树可以使用Files.walk()方法,它返回一个懒加载的Stream<Path>,避免内存溢出。

Java file集合怎么用,有哪些常用方法? 第3张

Files.walk(startPath).forEach(System.out::println);

walk()可以设置最大深度,如walk(startPath, maxDepth),以控制遍历层级。

问题2:如何过滤特定类型的文件?

过滤文件可以使用FilenameFilter或FileFilter接口。

  • File[] textFiles = dir.listFiles((dir, name) -> name.endsWith(".txt"));

或者使用NIO.2的Stream API:

  • Files.walk(startPath).filter(Files::isRegularFile).filter(p -> p.toString().endsWith(".txt")).collect(Collectors.toList());

0