1 changed files with 0 additions and 44 deletions
@ -1,44 +0,0 @@ |
|||||
package java01; |
|
||||
|
|
||||
import java.io.FileWriter; |
|
||||
import java.io.IOException; |
|
||||
import java.util.List; |
|
||||
|
|
||||
public class DataStorage { |
|
||||
|
|
||||
public void writeJobsToCSV(List<Job> jobs, String fileName) { |
|
||||
try (FileWriter writer = new FileWriter(fileName)) { |
|
||||
// 写入表头
|
|
||||
writer.write("职位标题,公司名称,薪资,地点,经验,学历,技能要求\n"); |
|
||||
|
|
||||
for (Job job : jobs) { |
|
||||
// 写入数据行,处理逗号和引号
|
|
||||
writer.write(escapeCsvField(job.getTitle()) + ","); |
|
||||
writer.write(escapeCsvField(job.getCompany()) + ","); |
|
||||
writer.write(escapeCsvField(job.getSalary()) + ","); |
|
||||
writer.write(escapeCsvField(job.getLocation()) + ","); |
|
||||
writer.write(escapeCsvField(job.getExperience()) + ","); |
|
||||
writer.write(escapeCsvField(job.getEducation()) + ","); |
|
||||
writer.write(escapeCsvField(job.getSkills()) + "\n"); |
|
||||
} |
|
||||
|
|
||||
System.out.println("数据已成功写入CSV文件: " + fileName); |
|
||||
} catch (IOException e) { |
|
||||
e.printStackTrace(); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
private String escapeCsvField(String field) { |
|
||||
if (field == null) { |
|
||||
return ""; |
|
||||
} |
|
||||
// 如果字段包含逗号、引号或换行符,需要用引号包围
|
|
||||
if (field.contains(",") || field.contains("\"") || field.contains("\n")) { |
|
||||
// 转义字段中的引号
|
|
||||
field = field.replace("\"", "\"\""); |
|
||||
// 用引号包围字段
|
|
||||
return "\"" + field + "\""; |
|
||||
} |
|
||||
return field; |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue