2016-12-10 9 views
-1

私はcsvで何が間違っているのか尋ねたいと思います。 ユーザー設定が「設定」されていて、CSVファイルに「取得」したいのですが、それでも機能しません。ユーザーは、彼の入力を取る私の方法である。それはクラスである「auswahlMenue」私はCSVの入力に間違っています

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で読み取ります。 CSVファイル内

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; 
} 

最後の検索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; 
} 

私はあなたが私を助けることを願って、私は私がそう多くのコードを投稿することを申し訳ありません。私は本当に混乱しているので、あまりにも多く投稿します。

よろしく グリーンティ

+0

、あなたはコードの大きな壁があり、それは「動作しませんか」?それはあまりにも曖昧です。達成したいこと、達成するために実行しているコード、期待すること、代わりに実行するコードを教えてください。正確に。誰にでも読めるように英語でコードを書いてください。 –

答えて

0

私はあなたのライターを複雑していると思います。 FileWriterを使うだけです。下記参照:

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

をあなたがこのページを見ることができ、よりdetailledです:だからhttps://www.mkyong.com/java/how-to-export-data-to-csv-file-java/

乾杯

関連する問題