/**
* entity转txt文件
*/
// 将实体对象转换为文本内容并写入文件
static void EntityToTxt(Object entity, String filePathname) {
File directory = new File(filePathname);
boolean exists = directory.exists();
// 创建文件目录
if (exists) {
System.out.println("目录已存在: " + filePathname);
} else {
boolean created = directory.mkdir();
if (created) {
System.out.println("目录创建成功: " + filePathname);
} else {
System.out.println("目录创建失败: " + filePathname);
}
}
File txtFile = new File(filePathname, "账号余额.txt");
int count = 1;
// 文件名逻辑判断
while (txtFile.exists()) {
String newTxtFilePath = filePathname + "/账号余额(" + count + ").txt";
txtFile = new File(newTxtFilePath);
count++;
}
try {
FileWriter writer = new FileWriter(txtFile);
StringBuilder textContent = new StringBuilder();
Class<?> entityClass = entity.getClass();
List<Field> fields = getAllFields(entityClass);
textContent.append("账户余额!").append("总共").append(fields.size()).append("\n");
for (Field field : fields) {
//setAccessible(true):调用 setAccessible(true) 方法将字段的可访问性设置为 true,即允许对字段进行访问和操作。
field.setAccessible(true);
String fieldName = field.getName();
Object fieldValue;
try {
fieldValue = field.get(entity);
} catch (IllegalAccessException e) {
e.printStackTrace();
continue;
}
if (fieldValue != null) {
textContent.append(fieldName).append(": ").append(fieldValue.toString()).append("\n");
}
}
writer.write(textContent.toString());
writer.close();
System.out.println("文件写入成功: " + txtFile.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
System.out.println("文件写入失败: " + txtFile.getAbsolutePath());
}
}
// 获取实体对象的所有字段,包括父类字段
private static List<Field> getAllFields(Class<?> clazz) {
List<Field> fields = new ArrayList<>();
while (clazz != null) {
Field[] declaredFields = clazz.getDeclaredFields();
for (Field field : declaredFields) {
fields.add(field);
}
clazz = clazz.getSuperclass();
}
return fields;
}
新建文件工具
该代码段展示了如何将一个对象的属性转换为文本内容并写入TXT文件。它首先检查文件目录,创建如果不存在,然后遍历对象的所有字段(包括父类字段),并将它们写入文件。如果文件已存在,它会添加编号以避免覆盖。
摘要由CSDN通过智能技术生成