【发布时间】:2017-04-25 16:00:45
【问题描述】:
我想问一下我在 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.");
}
}
此方法正在读取 Transaktion Line-wise。
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-File 中搜索 Transaktion
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;
}
我希望你能帮助我,很抱歉我发布了这么多代码。我发了这么多,因为我真的很困惑。
最好的问候 绿茶
【问题讨论】:
-
那么,你有一大堵代码,但它“不起作用”?这太模糊了。告诉我们您想要实现什么,您正在执行哪些代码来实现这一目标,您希望它做什么,以及它会做什么。恰恰。请用英文编写代码,以便任何人都可以阅读。
标签: java csv oop model-view-controller java-8