方法以逗号分隔格式返回String。例如,返回的String可以像下面给出的那样。
Tarantino,50,M,USA\n Carey Mulligan,27,F,UK\n Gong Li,45,F,China
我需要获取此String并将其写入CSV文件。我也必须为此文件插入页眉和页脚。
例如,当我打开文件时,上述数据的内容将是
Name,Age,Gender,Country
Tarantino,50,M,USA
Carey Mulligan,27,F,UK
Gong Li,45,F,China
我们如何做到这一点?是否有任何开源库来完成这项任务?
答案 0 :(得分:1)
CSV格式定义不明确。您不必为该文件编写标头。相反,它是非常简单的格式。数据值使用逗号或分号或空格等分隔。 您只需编写自己的简单方法,使用FileOutputStream或java.io包中的Writer将字符串写入本地计算机上的文件。
答案 1 :(得分:0)
您可以将此作为学习示例。
我使用了BufferedReader
,因为他会关注line
分隔符,但您也可以使用#split
方法,并编写生成的标记。
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
}
}
}
}
}
答案 2 :(得分:0)
这很简单
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块中的流并处理异常