2017-11-23 4 views
-1

Ich versuche, Text in einer Datei zu ändern, sondern es zu modifizieren, es ist nur das Hinzufügen eine neue Zeile mit den neuen Informationen:Textänderung in Java Netbeans

Hier ist mein Code

String id= IDSearch.getText(); 
     String newname = NameText.getText(); 
     String newbarcode = BarcodeText.getText(); 
     String newsupplier= SupplierText.getText(); 
     String newamount1= AmountText.getText(); 


     ArrayList<Item> ItemsList = new ArrayList<>(); 

     if (id.isEmpty() || newname.isEmpty() || newbarcode.isEmpty() || newsupplier.isEmpty() || newamount1.isEmpty()) { 
      JOptionPane.showMessageDialog(this, " Please Fill all fields");} 
     else{ 
     try { 
      File Items = new File ("Items.txt"); 
      FileReader fr = new FileReader(Items); 
      BufferedReader br = new BufferedReader(fr); 
      String data; 
      Item tempItem; 

      while ((data = br.readLine()) != null) { 
         tempItem = new Item(data); 
         if (tempItem.getID().equals(IDSearch)) 
         { 
          tempItem.setItemName(newname); 
          tempItem.setItemBarcode(newbarcode); 
          tempItem.setSupplierID(newsupplier); 
          tempItem.setAmount(newamount1); 

         } 
         ItemsList.add(tempItem); 
        } 
      try (PrintWriter pw = new PrintWriter(new FileWriter(Items, true))) { 

        ItemsList.forEach((item) -> { 
         pw.println(newname + ";" + newbarcode+ ";" + newsupplier + ";" + newamount1); 


        }); 
        JOptionPane.showMessageDialog(this, "Student Updated Succesfully"); 

       } 
       }catch (IOException ex) { 


     } 
     } 
    } 

Ich kann anscheinend nicht in der Lage sein, die tex-Datei so zu aktualisieren, wie sie aktualisiert werden sollte. Jede Hilfe würde sehr geschätzt werden!

+0

Spülen Sie und schließen Sie den Schreiber – dirceusemighini

+0

Wo soll ich das tun? –

+0

In einer endgültigen Erklärung des Schreibcodes. Ich habe nie versucht() so in Java, aber das wäre getan, wenn diese Aussage abgeschlossen ist – dirceusemighini

Antwort

0

Sie haben Append auf true gesetzt. Doing new FileWriter(Items, false) oder nur (new FileWriter(Items) sollte das Problem beheben.

+0

Jetzt ersetzt es entweder alle Text in der Datei oder alle löschen und nur eine Zeile verlassen. Wie repariere ich das? –

+0

HELFEN SIE, DEN TEXT ZU ERSETZEN! –

+0

Was versuchst du zu tun? – Touniouk