首页 > 解决方案 > 如何使值中带有逗号的 java 对象不被拆分为 2 个单元格 CSV

问题描述

另一个问题不响应外部系统中由 XML 生成的对象的问题,其中不可能添加引号、反斜杠或任何其他文本。

我有脚本:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;

public class test {
    public static void main(String[] args){

      try {
        File fileDir = new File("c:\\java2\\test.csv");

        Writer out = new BufferedWriter(new OutputStreamWriter(
            new FileOutputStream(fileDir), "UTF8"));
            out.append('\ufeff');
        out.append("Webňite, UTF-8").append(",");


        out.append("?? UTF-8");
        out.append(",");
        out.append("??????? UTF-8").append("\r\n");

        out.flush();
        out.close();

        } 
       catch (UnsupportedEncodingException e) 
       {
        System.out.println(e.getMessage());
       } 
       catch (IOException e) 
       {
        System.out.println(e.getMessage());
        }
       catch (Exception e)
       {
        System.out.println(e.getMessage());
       } 
    }   
}

当转换为 csv 时,我需要将文本“Webňite,UTF-8”写入一个单元格。

请问有可能吗?

目前在 3 个文本中,我在 csv 中有 4 个单元格,我需要 3 个。

我需要包含逗号符号的文本,而不是被 csv 文件拆分为 2 个单元格。

(示例脚本仅用于演示目的,最后我有来自 XML 的 java 对象,它的值中包含逗号,并且不必要地分为 2 个单元格。

所以我需要解决方案,它也不适用于追加中的纯文本,也适用于对象。

谢谢

标签: javacsvcomma

解决方案


尝试将逗号符号括在引号中。所以改变你的行:

out.append("Webňite, UTF-8").append(",");

out.append("Webňite\",\" UTF-8").append(",");

查看答案有没有办法在不破坏格式的情况下在 CSV 列中包含逗号?(顺便说一句,这可能是一个重复的问题)


推荐阅读