Java 解析csv时保留引号
我知道已经有一个问题与此相关:(但这是C#的问题) 假设我有一个csv,其值如下:Java 解析csv时保留引号,java,csv,opencsv,Java,Csv,Opencsv,我知道已经有一个问题与此相关:(但这是C#的问题) 假设我有一个csv,其值如下: 12312414-DEF_234, "34-DE, 234-EG, 36354-EJ", 23 ... 当我用OpenCSV解析它时,它不会保留引号 CSVReader reader = new CSVReader(new FileReader("../path.csv"), ',', '\"'); List<String[]> list = reader.readAll(); String[][
12312414-DEF_234, "34-DE, 234-EG, 36354-EJ", 23
...
当我用OpenCSV解析它时,它不会保留引号
CSVReader reader = new CSVReader(new FileReader("../path.csv"), ',', '\"');
List<String[]> list = reader.readAll();
String[][] csvArray = new String[list.size()][];
csvArray = list.toArray(csvArray);
我怎样才能保留报价?原因是我将要更改一些值,需要将其重新输出回csv。CSVReader必须解析并删除引号,否则您不会得到一个值
34-DE,234-EG,36354-EJ
,而是三个值“34-DE
,234-EG
和36354-EJ
。所以删除引号是可以的
CSVWriter
应该为每个需要引用的值再次添加它们
您是否尝试将数组写回CSV?值
34-DE,234-EG,36354-EJ
——实际上任何包含逗号的值——都应该加引号。是的,CSVWriter会将引号添加到所有以逗号分隔的值中。但理想的情况是,我希望它的格式与我收到它时的格式相同。。这意味着只有第二列中的那个值——或者这无关紧要,并且文件可以用同样的方式读取,所有都用引号括起来?@B.V因为CSVWriter会把它们加回去,我不明白为什么这会有关系
public static void readCSV(){
String csvFile = "input.csv";
BufferedReader br = null;
String line = "";
String splitter = ",";
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] words = line.split(splitter);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void readCSV(){
String csvFile = "input.csv";
BufferedReader br = null;
String line = "";
String splitter = ",";
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] words = line.split(splitter);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}