【问题标题】:Export a string in Java to CSV将 Java 中的字符串导出为 CSV
【发布时间】:2015-10-20 17:46:06
【问题描述】:

如何仅使用一列将 Java 中的字符串导出到具有此格式的 csv 文件。

这是我所期待的:

                Column 1    
Row 1:     string1,string2,string3  
Row 2:     string4, string5, string6

提前致谢

【问题讨论】:

  • 你试过什么?您是否尝试过在谷歌上搜索可序列化为 CSV 的第三方库?
  • 如何是单列。由于列用逗号分隔,我看到每行有三列。
  • 打开一个输出流并写入它。
  • 完全不需要第三方库序列化为csv
  • csv - 表格格式的逗号分隔值文件,这里是您的 string1、string2、string3,这意味着它们是 csv 的单独列而不是 1 列

标签: java string csv export-to-csv


【解决方案1】:

在下面的代码中,您提供了一个元素列表。每个元素都包含一行 csv 文件的信息。 StringBuilder 用于为一行创建字符串,然后立即输出到文件中。

public void writeCsvFile(List elements, String fileName) throws IOException {    
     BufferedWriter csvFile = null;
     String delim = ",";
     try {
             csvFile = new BufferedWriter(new OutputStreamWriter(
                        new FileOutputStream(fileName), StandardCharsets.UTF_8));
             for (int i = 0; i < objects.size(); i++) {
                 StringBuilder buf = new StringBuilder();
                 Elements elem = elements.get(i);
                 buf.append(elem.info1).append(delim);
                 buf.append(elem.info2).append(delim);
                 buf.append(elem.info3);
                 csvFile.write(buf.toString());
                 csvFile.newLine();
            }
        } finally {
            try {
                if (csvFile != null) {
                    csvFile.close();
                }
            } catch (IOException e) {
                // empty
            }
        }

    }

【讨论】:

    【解决方案2】:

    您基本上必须“转义”逗号,以便 CSV 阅读器不会将它们解释为列分隔符。

    如果将行值用引号括起来,则逗号应作为分隔符忽略

    这将为您提供 3 列

    Value1,Value2,Value3
    

    这应该为您提供 1 列,将整个字符串作为单个值

    "Value1,Value2,Value3"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      相关资源
      最近更新 更多