You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 06:54:28