【问题标题】:I make something wrong at the input of CSV我在输入 CSV 时出错了
【发布时间】: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


【解决方案1】:

我认为你让你的作家复杂化了。只需使用 FileWriter。见下文:

String path = "/path/";
FileWriter writer = new FileWriter(path + dateiname + ".csv");
writer.append("data1;data2;data3");
writer.flush();
writer.close();

你可以看到这个页面更详细:https://www.mkyong.com/java/how-to-export-data-to-csv-file-java/

干杯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多