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