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中关闭流并处理异常为什么需要额外的库将文本写入文件?只需将头写入文件,由于字符串已经有换行符,只需将字符串写入文件即可。