java我在输入CSV时出错了
我想问我在csv中犯了什么错误。 我有一个“设置”的用户输入,我想将它“获取”到我的CSV文件中,但它仍然不起作用。 这是我的方法,用户在其中输入信息。它在“auswahlMenue”课上
public void transaktionslisteEinlesen() throws TransaktionIOException{
System.out.println("Transaktionsliste einlesen");
// Einlesen von lokalen Attributen
String beschreibungstext = MeineEingabe.erfasseString("Beschreibungstext: ");
double betrag = MeineEingabe.erfasseDouble("Betrag:");
LocalDateTime localdatetime = LocalDateTime.now();
String transaktionsart = MeineEingabe.erfasseString("Transaktionsart:");
String iban = ibangen.generate();
/*
* Abspreichern der lokalen Attributen in den Konstruktor der Klasse
* Transaktion
*/
Transaktion transaktion = new Transaktion();
transaktion.setIban(iban);
transaktion.setBeschreibungstext(beschreibungstext);
transaktion.setBetrag(betrag);
transaktion.setTart(transaktionsart);
transaktion.setZeitStempel(localdatetime);
TransaktionCsv transCSV = new TransaktionCsv();
transCSV.schreibTransaktionZeilenweiseRaus("transaktion" konto.getTransaktionListe());
konto.addTransaktion(transaktion);
System.out.println("\nTransaktionsliste wurde eingelesen!");
}
这就是我调用的方法。我打开项目中的文件进行检查
public void schreibTransaktionZeilenweiseRaus(String dateiname, ArrayList<Transaktion> transaktion) throws TransaktionIOException
{
File datei = new File(dateiname);
try {
BufferedWriter out = new BufferedWriter(new FileWriter(datei));
for (Transaktion transaktion1 : transaktion) {
out.write(transaktion1.getIban() + ";" +transaktion1.getZeitStempel() + ";" +transaktion1.getTart() + ";" + transaktion1.getBeschreibungstext() + ";" + transaktion1.getBetrag() + ";\n");
}
out.close();
} catch (FileNotFoundException e) {
throw new TransaktionIOException("Datei existiert nicht.");
} catch (IOException e) {
throw new TransaktionIOException("Datei kann nicht geschrieben werden.");
}
}
此方法是逐行读取交易
public ArrayList<String> liesTransaktionZeilenweiseEin(String dateiname) throws TransaktionIOException
{
ArrayList<String> zeilen = new ArrayList<String>();
File datei = new File(dateiname);
try {
BufferedReader in = new BufferedReader(new FileReader(datei));
String zeile = null;
while ((zeile = in.readLine()) != null) {
zeilen.add(zeile);
}
in.close();
} catch (FileNotFoundException e) {
throw new TransaktionIOException("Datei existiert nicht.");
} catch (IOException e) {
throw new TransaktionIOException("Datei kann nicht gelesen werden.");
}
return zeilen;
}
最后一个在CSV文件中搜索交易
public ArrayList<Transaktion> ermittleTransaktionAusCsv(ArrayList<String> zeilen) throws TransaktionCsvFormatException {
ArrayList<Transaktion> transaktion = new ArrayList<Transaktion>();
for (String zeile : zeilen) {
String[] bestandteile = zeile.split(";");
String iban = bestandteile[0];
LocalDateTime zeitstempel;
String transart = bestandteile[2];
String beschreibung = bestandteile[3];
double betrag = 0.0;
try {
zeitstempel = LocalDateTime.parse(bestandteile[1]);
betrag = Double.parseDouble(bestandteile[4]);
} catch (NumberFormatException e) {
throw new TransaktionCsvFormatException();
}
transaktion.add(new Transaktion(iban,zeitstempel,transart,beschreibung,betrag));
}
return transaktion;
}
我希望你能帮助我,我很抱歉,我张贴了这么多的代码。我发了这么多,因为我真的很困惑
致意 绿茶
# 1 楼答案
我认为你把你的作者复杂化了。只需使用FileWriter。见下文:
您可以看到此页面更详细:https://www.mkyong.com/java/how-to-export-data-to-csv-file-java/
干杯