当我尝试将一些文本写入 CSV 时,我发现它在文本中的第一个逗号处剪切了文本,从而将字符串写入 2 个不同的单元格而不是 1 个。无论如何,这个问题是否存在,因为文本将从网络而不是输入中爬取
函数代码的要点是
String text = "hello, this is me";
try {
PrintWriter csv = new PrintWriter(new File("test.csv"));
csv.write(text);
csv.close();
}
catch(Exception e) {
}
最佳答案
测试.csv
a;b;c
d;e;f
test2.csv
a;b;c
,;e;f
使用 Java 代码 opencsv
:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.List;
import com.opencsv.CSVParserBuilder;
import com.opencsv.CSVReader;
import com.opencsv.CSVReaderBuilder;
import com.opencsv.CSVWriter;
public class Sof {
public static void main(String[] args) {
CSVReader reader;
try (CSVWriter writer = new CSVWriter(new FileWriter(new File("src/main/resources/test2.csv")), ';', Character.MIN_VALUE, '\\', "\n");) {
reader = new CSVReaderBuilder(new InputStreamReader(new FileInputStream("src/main/resources/test.csv"), StandardCharsets.UTF_8))
.withCSVParser(new CSVParserBuilder().withSeparator(';').build()).build();
final List<String[]> csvBody = reader.readAll();
System.out.println(csvBody.size());
csvBody.get(1)[0] = ",";
writer.writeAll(csvBody);
writer.flush();
reader.close();
} catch (final IOException e1) {
System.err.println(e1);
}
}
}
关于java - 如何将字符串中的逗号添加到 csv 中的单个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60256900/