import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
* 文件工具类
*/
public class FileUtil {
/**
* 读取文件内容
* @param fileName 文件地址
* @param valueType 读出的类型
* @return
*/
public static List<Object> readFile(String fileName, Class valueType){
//如果不存在就创建一个
createFileIfNotExists(fileName);
List<Object> list=new ArrayList();
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line;
//一行一行读取
while ((line = reader.readLine()) != null && reader.readLine().length()>0) {
ObjectMapper objectMapper = new ObjectMapper();
Object object = objectMapper.readValue(line, valueType);
list.add(object);
}
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
/**
* 追加文件内容
* @param fileName
* @param data
*/
public static void writeFile(String fileName,String data) {
File file=new File(fileName);
//如果不存在就创建一个
createFileIfNotExists(fileName);
try (FileWriter writer = new FileWriter(fileName, true)) {
writer.write(data);
writer.write("\n");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 如果文件以及相关文件夹不存在就创建他
* @param filePath
*/
public static void createFileIfNotExists(String filePath){
// 创建一个 File 对象
File file = new File(filePath);
// 检查文件是否存在
if (!file.exists()) {
// 文件不存在,检查父文件夹是否存在,如果不存在则创建
File parentFolder = file.getParentFile();
if (parentFolder != null && !parentFolder.exists()) {
boolean flag = parentFolder.mkdirs();
if (flag) {
System.out.println("文件夹已创建: " + parentFolder);
}
}
// 创建文件
try {
boolean flag = file.createNewFile();
if (flag) {
System.out.println("文件已创建: " + file);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
01-14