如何使用 java 将字符串中的逗号分隔值存储为 CSV
how to store comma separated values in a String to CSV using java
我想使用以下代码将字符串存储到 CSV 文件中,但生成的是空 CSV。
代码
try {
PrintWriter writer = new PrintWriter(new File("test.csv"));
StringBuilder sb = new StringBuilder();
String str ="1 cup, honey, 2 tablespoons ,canola" ;
sb.append(str);
writer.write(String.valueOf(sb));
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}
Expected Output :
The data should show like this in CSV file.
1 cup
honey
2 tablespoons
canola
我怎样才能得到预期的结果?
String str ="1 cup, honey, 2 tablespoons ,canola" ;
这会将数据保留在一行中,并且每个逗号都会根据 CSV 文件的规则将数据带到新列中。您需要在数据中附加一个新行,以便在每个逗号之后将数据保存到新行。可以通过这个来完成。
try (PrintWriter writer = new PrintWriter(new File("test.csv"))) {
StringBuilder sb = new StringBuilder();
String str = "1 cup, honey, 2 tablespoons ,canola";
String []splitted_str=str.split(",");
for (String string : splitted_str) {
sb.append(string).append("\n"); //this will add a new line after every value separated by comma.
}
writer.write(sb.toString());
System.out.println("done!");
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}
您需要刷新作者内容
.
添加
writer.flush()
在 writer.write()
之后
可以参考this answer
并且还记得关闭编写器流以优化资源。
因为我喜欢短码:
String str = "1 cup, honey, 2 tablespoons ,canola";
try (PrintWriter writer = new PrintWriter(new File("test.csv"))) {
Arrays.stream(str.split(",")).map(String::trim).forEach(writer::println);
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}
我想使用以下代码将字符串存储到 CSV 文件中,但生成的是空 CSV。
代码
try {
PrintWriter writer = new PrintWriter(new File("test.csv"));
StringBuilder sb = new StringBuilder();
String str ="1 cup, honey, 2 tablespoons ,canola" ;
sb.append(str);
writer.write(String.valueOf(sb));
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}
Expected Output :
The data should show like this in CSV file.
1 cup
honey
2 tablespoons
canola
我怎样才能得到预期的结果?
String str ="1 cup, honey, 2 tablespoons ,canola" ;
这会将数据保留在一行中,并且每个逗号都会根据 CSV 文件的规则将数据带到新列中。您需要在数据中附加一个新行,以便在每个逗号之后将数据保存到新行。可以通过这个来完成。
try (PrintWriter writer = new PrintWriter(new File("test.csv"))) {
StringBuilder sb = new StringBuilder();
String str = "1 cup, honey, 2 tablespoons ,canola";
String []splitted_str=str.split(",");
for (String string : splitted_str) {
sb.append(string).append("\n"); //this will add a new line after every value separated by comma.
}
writer.write(sb.toString());
System.out.println("done!");
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}
您需要刷新作者内容
.
添加
writer.flush()
在 writer.write()
可以参考this answer
并且还记得关闭编写器流以优化资源。
因为我喜欢短码:
String str = "1 cup, honey, 2 tablespoons ,canola";
try (PrintWriter writer = new PrintWriter(new File("test.csv"))) {
Arrays.stream(str.split(",")).map(String::trim).forEach(writer::println);
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}