Java:将字符串格式的CSV写入文件中的CSV

Java:将字符串格式的CSV写入文件中的CSV,java,csv,file-io,Java,Csv,File Io,方法返回逗号分隔格式的字符串。例如,返回的字符串可以类似于下面给出的字符串 Tarantino,50岁,美国\n凯里·穆利根,27岁,F,英国\n巩俐,45岁,F,中国 我需要得到这个字符串并将其写入CSV文件。我必须为这个文件插入页眉和页脚 例如,当我打开文件时,上面数据的内容将是 Name,Age,Gender,Country Tarantino,50,M,USA Carey Mulligan,27,F,UK Gong Li,45,F,China 我们怎么做?是否有任何开源库可以执

方法返回逗号分隔格式的字符串。例如,返回的字符串可以类似于下面给出的字符串

Tarantino,50岁,美国\n凯里·穆利根,27岁,F,英国\n巩俐,45岁,F,中国

我需要得到这个字符串并将其写入CSV文件。我必须为这个文件插入页眉和页脚

例如,当我打开文件时,上面数据的内容将是

Name,Age,Gender,Country
Tarantino,50,M,USA    
Carey Mulligan,27,F,UK
Gong Li,45,F,China

我们怎么做?是否有任何开源库可以执行此任务

CSV格式的定义不是很好。您不必为文件写入标题。相反,它是非常简单的格式。使用逗号、分号或空格等分隔数据值。
您只需编写自己的简单方法,使用FileOutputStream或java.io包中的Writer将字符串写入本地计算机上的文件。

您可以将此作为学习示例。 我使用了
BufferedReader
,因为他会处理
分隔符,但您也可以使用方法,并编写生成的标记

import java.io.*;

public class Tests {

  public static void main(String[] args) {

    File file = new File("out.csv");
    BufferedWriter out = null;

    try {

      out = new BufferedWriter(new FileWriter(file));

      String string = "Tarantino,50,M,USA\n Carey Mulligan,27,F,UK\n Gong Li,45,F,China";

      BufferedReader reader = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(string.getBytes())));
      String line;

      while ((line = reader.readLine()) != null) {
        out.write(line.trim());
        out.newLine();
      }
    }

    catch (IOException e) {
      // log something
      e.printStackTrace();
    }

    finally {
      if (out != null) {
        try {
          out.close();
        } catch (IOException e) {
          // ignored
        }
      }
    }
  }
}
这很简单

String str = "Tarantino,50,M,USA\n Carey Mulligan,27,F,UK\n Gong Li,45,F,China";
PrintWriter  pr = new PrintWriter(new FileWriter(new File("test.csv"), true));
String arr[] = str.split("\\n"); 
// splited the string by new line provided with the string
pr.println("Name,Age,Gender,Country"); 
// header written first and rest of data appended
for(String s : arr){
    pr.println(s);
}
pr.close();

别忘了在finally block中关闭流并处理异常

为什么需要额外的库将文本写入文件?只需将头写入文件,由于字符串已经有换行符,只需将字符串写入文件即可。