從csv讀取ö,ü和ä時出現問題。程序應該使用OpenCSV庫讀取csv文件,然後將其解析爲客戶列表(每行都是一個客戶),最後將其寫入另一個.csv文件,添加額外的數據。用ä,ö,ü解析CSV
public CSVConverter(String fileNameIn, String fileNameOut, int header){
try {
this.fileNameIn = fileNameIn;
this.fileNameOut = fileNameOut;
this.header = header;
reader=new CSVReader(new InputStreamReader(new FileInputStream(this.fileNameIn), "UTF-8"), ';');
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(this.fileNameOut), "UTF-8"));
} catch (FileNotFoundException ex) {
System.out.println("File not found!");
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(CSVConverter.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void readTXT(){
try {
kundenListe = (ArrayList<String[]>) reader.readAll();
} catch (IOException ex) {
Logger.getLogger(CSVConverter.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void writeCSV(){
this.parseCustomerList();
for(Kunde customer : this.customerList){
try {
writer.write(customer.toString());
System.out.println(customer.toString());
} catch (IOException ex) {
Logger.getLogger(CSVConverter.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
private Kunde parseCustomer(String[] row){
Kunde tempCust = new Kunde();
tempCust.setKDNR(row[0].trim());
tempCust.setName_1(row[1].trim());
tempCust.setName_2(row[2].trim());
//...
return tempCust;
}
private void parseCustomerList(){
for(String[] kunde : this.kundenListe){
this.customerList.add(this.parseCustomer(kunde));
}
}
當我試圖通過System.out.println(customer.toString());
寫入了文件中的行它也不會打印,只是一個矩形。但正常的System.out.println("öäü");
工作正常。
非常感謝您提前!
你是否閱讀了正確的字符集文件? –
請顯示您的課程'Kundle' – AlexR
我已經使用UTF-8字符集從訪問中導出了csv-filem。昆德只是一個擁有屬性,吸氣者和二傳手的階級,現在還沒有。 –