我有一个CSV文件,其中包含多个值和特殊字符。我也有这个“¡°”的特殊角色。如何在读取或写入文件时忽略它? 我使用KettleCSVreader来读取文件数据。
public Map<String,List<String>> readCSV (Map<String, String> field, String delimiter,String fileLocation,String enclosure) {
csvDataReader =new CsvDataReader(fileLocation, headerPresent, delimiter,enclosure!=null?enclosure:"\"" , rowLimit);
csvvalue = csvDataReader.loadData();
List<String> headers=new ArrayList<String>();
List<String> selectedClomnVals=new ArrayList<String>();
Map<String,List<String>> fieldValues = new LinkedHashMap<String, List<String>>();
headers=csvDataReader.getHeader();
for (String nm : field.keySet()) {
String key = nm;
String value = field.get(nm).toString().trim();
int index=headers.indexOf(value);
selectedClomnVals=csvDataReader.getColumnData(index);
fieldValues.put(key, selectedClomnVals);
}
return fieldValues;
}
在阅读那个特殊的特殊字符时,我得到了一个例外。有什么方法可以在读取或写入文件时忽略该字符。
答案 0 :(得分:1)
查看CsvDataReader的代码,它使用InputStreamReader来读取输入,而不指定Charset。在这种情况下,InputStreamReader使用默认的字符集。
编写Kettle代码的扩展,修改Kettle代码并为社区做出贡献或更改默认字符集。