【问题标题】:Need to replace a comma with a pipe for csv export in java需要用管道替换逗号以在java中导出csv
【发布时间】:2021-11-11 08:34:14
【问题描述】:

我需要导出一个txt格式的csv文件;我想为单独的字段使用管道。 我的代码类似于 String[] x = {its1, its2, its3, its4, its5 };

我需要:{its1|其2|其3|其4|它5 }

ps。我当然在控制器中。

@Controller

public class CSVFileDownloadController 
{ @RequestMapping(value ="/downloadCSV")   
 public void downloadCSV(HttpServletResponse response) throws IOException {
 
        String csvFileName = "books.csv";
 
        response.setContentType("text/csv");
 
        // creates mock data
        String headerKey = "Content-Disposition";
        String headerValue = String.format("attachment; filename=\"%s\"",
                csvFileName);
        response.setHeader(headerKey, headerValue);
 
       
        List<Book> listBooks = Arrays.asList(); 
 
        // uses the Super CSV API to generate CSV data from the model data
        ICsvBeanWriter csvWriter = new CsvBeanWriter(response.getWriter(),
                CsvPreference.STANDARD_PREFERENCE);
 
        String[] header = { "Title", "Description", "Author", "Publisher",
                "isbn", "PublishedDate", "Price" };
 
        csvWriter.writeHeader(header);
 
        for (Book aBook : listBooks) {
            csvWriter.write(aBook, header);
        }
 
        csvWriter.close();
    }
}

谢谢@M.Deinum

【问题讨论】:

  • “我需要”你不能拥有它,因为看起来你想要这样的 Java 代码,但它不是有效的 Java。您的意思是当您将其打印到文件时要呈现为its1| its2| 等?
  • 请出示您的控制器。
  • 是的,在出来的文本文件中
  • @kirinya 添加在主要问题上
  • 不要使用CsvPreference.STANDARD_PREFERENCE,而是使用Builder构建自己的。

标签: java csv model-view-controller controller


【解决方案1】:

你可以join数组:

String result = String.join("|", x);

【讨论】:

  • (当然,那不是csv)。
  • @AndyTurner 我认为 csv 代表 C字符 S分隔 Values
  • @BdR 没有,comma-separated valuesDSV (delimiter-separated values) 是 (/a) 更通用的术语。
  • @AndyTurner 说得好,谢谢。编辑了我的答案以使用更好的术语。
猜你喜欢
  • 2022-01-21
  • 2013-09-22
  • 2017-11-17
  • 1970-01-01
  • 1970-01-01
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多