springboot文件输入输出
时间: 2025-01-08 10:00:11 浏览: 3
### Spring Boot 文件读写操作
在 Spring Boot 中实现文件的输入输出操作相对简单。通过使用 Java 的内置 I/O 流类库以及一些辅助工具可以轻松完成这一任务。
#### 使用 `File` 和 `BufferedReader/BufferedWriter`
对于简单的文本文件读取和写入,可以直接利用 `java.io.File`, `java.io.BufferedReader` 及 `java.io.BufferedWriter`. 下面是一个基本的例子来展示如何创建一个控制器来进行文件的操作[^3]:
```java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
@RestController
public class FileController {
private final String filePath = "example.txt";
@PostMapping("/writeToFile")
public String writeToFile(@RequestParam(value="content") String content){
try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(filePath))) {
writer.write(content);
return "Content written to file.";
} catch (IOException e) {
return "Failed to write to file: "+e.getMessage();
}
}
@GetMapping("/readFromFile")
public String readFromFile(){
StringBuilder contentBuilder = new StringBuilder();
try (Stream<String> stream = Files.lines( Paths.get(filePath), StandardCharsets.UTF_8)) {
stream.forEach(s -> contentBuilder.append(s).append("\n"));
}catch(IOException e){
return "Error reading from file: "+e.getMessage();
}
return contentBuilder.toString();
}
}
```
这段代码定义了一个 RESTful Web Service 接口用于处理 HTTP 请求以执行文件的读写功能。当接收到 POST 请求 `/writeToFile` 并附带参数 `content` 时会将给定的内容保存到指定路径下的文件中;而 GET 请求 `/readFromFile` 则返回该文件中的全部内容作为响应体。
为了使应用程序更加健壮,在实际应用环境中应当考虑更多的异常情况并加入适当的错误处理机制。此外还可以引入诸如 Apache Commons IO 或 Google Guava 这样的第三方库简化某些常见的 I/O 操作流程[^4].
阅读全文