Java如何替换CSV文件表头及行数据中的双引号并覆盖原文件
Java实现CSV移除双引号方案
针对你的需求,不需要引入第三方CSV解析库,用JDK自带的API就能快速实现,逻辑非常直接:
- 先把原文件所有内容读取到内存,禁止边读边写原文件,避免损坏数据
- 逐行处理文本:去掉每行首尾多余的空白字符,再把行内所有双引号全部替换为空
- 处理完成后清空原文件,把新内容写入覆盖
可直接运行的代码示例
代码基于JDK 7+自带的NIO API编写,不需要额外导入第三方依赖,直接复制就能用:
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; import java.util.List; import java.util.stream.Collectors; public class CsvQuoteRemover { public static void main(String[] args) { // 替换为你的CSV文件实际路径,Windows路径的反斜杠需要写两个做转义 String filePath = "C:\\Users\\MyFile\\myFile.csv"; try { // 读取原文件所有行 List<String> rawLines = Files.readAllLines(Paths.get(filePath)); // 逐行处理:去首尾空白 + 删除所有双引号 List<String> handledLines = rawLines.stream() .map(line -> line.trim().replace("\"", "")) .collect(Collectors.toList()); // 覆盖写入原文件 Files.write( Paths.get(filePath), handledLines, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE ); System.out.println("处理完成,原文件已被覆盖"); } catch (IOException e) { e.printStackTrace(); } } }
注意事项
- 操作前务必备份原CSV文件,避免代码逻辑不符合预期导致数据丢失
- 这个实现只适配你当前的场景:所有双引号都是字段包裹符,字段值本身不包含双引号。如果后续遇到字段内容本身带双引号的标准CSV格式,建议换用OpenCSV等专业CSV解析库做结构化处理,避免误删内容里的合法双引号
- 代码里的
TRUNCATE_EXISTING参数作用是写入前先清空原文件内容,确保不会和旧内容拼接
内容的提问来源于stack exchange,提问作者ychaulagain
相关产品推荐
相关产品推荐

