1.操作文件(包含win和linux)
工具类:
package org.example.demo1boot.daran.util;import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;public class FileUtils {/*** 获取项目路径:拼成全路径* linux和window都可以* @return*/private static String getProjectTxtPath() {String rootPath = System.getProperty("user.dir"); // 项目根目录Path txtPath = Paths.get(rootPath, "data", "txt");if (!Files.exists(txtPath)) {try {Files.createDirectories(txtPath);} catch (IOException e) {throw new RuntimeException("无法创建目录: " + txtPath, e);}}return txtPath.toString();}/*** 写入或者追加文件内容* @param data 数据* @param fileName 文件名称* @param flag true:写入,false:追加* @return*/public static String save(String data,String fileName,boolean flag) {try {String filePath = getProjectTxtPath() + "/"+fileName;StandardOpenOption options;if(flag){options=StandardOpenOption.APPEND;}else{options= StandardOpenOption.TRUNCATE_EXISTING;}Files.write(Paths.get(filePath), data.getBytes(),StandardOpenOption.CREATE, options);return "数据保存成功: " + filePath;} catch (IOException e) {return "保存失败: " + e.getMessage();}}//读取文件public static String read(String fileName) {try {String filePath = getProjectTxtPath() + "/"+fileName;if (!Files.exists(Paths.get(filePath))) {return "文件不存在";}return new String(Files.readAllBytes(Paths.get(filePath)));} catch (IOException e) {return "读取失败: " + e.getMessage();}}
}
调用:
private static String FILE_NAME = "sensor_data.txt";@GetMapping("/saveSensorData")public String saveSensorData(@RequestParam String data) {if (StringUtils.isEmpty(data)) {return "数据不能为空";}return FileUtils.save(data,FILE_NAME,true);}@GetMapping("/getSensorData")public String getSensorData() {return FileUtils.read(FILE_NAME);}