java中io流读取写入文件夹
时间: 2024-12-19 21:24:29 浏览: 9
在Java中,I/O流用于处理文件操作,包括读取和写入文件。对于文件夹的操作,通常需要使用`java.nio.file`包下的类,如`Files`和`Path`。以下是基本步骤:
1. **打开目录**:
使用`Files.walk()`或`Files.newDirectoryStream()`遍历整个目录,获取所有的文件和子目录。
```java
Path dirPath = Paths.get("your_directory_path");
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dirPath)) {
for (Path entry : stream) {
// 这里可以访问每个文件或目录的信息
System.out.println(entry);
}
}
```
2. **读取文件夹内容**:
如果你想读取目录下的所有文本文件,可以创建`FileVisitor`并检查文件是否是`RegularFile`(普通文件):
```java
Files.walk(dirPath)
.filter(RegularFile.class::isInstance)
.map(RegularFile::toPath)
.forEach(filePath -> {
try (BufferedReader reader = Files.newBufferedReader(filePath, StandardCharsets.UTF_8)) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
});
```
3. **写入文件夹**:
若要向文件夹中添加新的文件,首先创建一个`Path`对象表示新文件的位置,然后使用`Files.createDirectories()`创建目录,最后用`Files.write()`写入数据。
```java
Path newFilePath = dirPath.resolve("new_file.txt");
try {
Files.createDirectories(newFilePath.getParent());
byte[] content = ...; // 新文件的内容
Files.write(newFilePath, content, StandardOpenOption.CREATE);
} catch (IOException e) {
e.printStackTrace();
}
```
阅读全文