2016-12-28 3 views
-2

Mein Code ist ein einfacher Dateiersteller und -manager. Die Hauptmethode, mit der ich alle Dateien organisiere, befindet sich in einer Verzeichnistextdatei. Ich importiere es in ein Array, damit das Programm darauf zugreifen kann. Meine Löschen-Schaltfläche entfernt die Zeichenfolge nicht aus der ArrayList. Wie kann ich das beheben?Warum entfernt mein Programm keine Zeichenfolge aus der ArrayList

//This part initialises the code and imports the array 
private void startActionPerformed(java.awt.event.ActionEvent evt) { 
    ArrayList<String> directory = new ArrayList(); 
    String content1; 

    try { 
     content1 = new String(Files.readAllBytes(Paths.get("directory.txt"))); 

     output.setText(content1); 
     directory.add(content1); 

     refresh(); 
    } catch (IOException ex) { 
     Logger.getLogger(filemanagerUI.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 

//This allows me to refresh the output text area 
private void refresh() { 
    String content = ""; 

    for (int i = 0; i < directory.size(); i++) { 
     content = content + directory.get(i) + "\n"; 
    } 
    try { 
     Files.write(Paths.get("directory.txt"), directory); 
    } catch (IOException ex) { 
     Logger.getLogger(filemanagerUI.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    output.setText(content); 
    System.out.println(directory); 
} 

//This deletes the file from the directory and the actual file 
private void deleteActionPerformed(java.awt.event.ActionEvent evt) {          
    directory.remove(input.getText()); 
    String fileDelete = input.getText(); 
    directory.remove(input.getText()); 
    Path deletefile = (Paths.get(fileDelete + ".txt")); 

    try { 
     Files.delete(deletefile); 
    } catch (IOException ex) { 
     Logger.getLogger(filemanagerUI.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    try { 
     Files.write(Paths.get("directory.txt"), directory); 
    } catch (IOException ex) { 
     Logger.getLogger(filemanagerUI.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    refresh(); 
}   
+3

Sie definierten 'ArrayList Verzeichnis = neue ArrayList();' im Bereich der Methode 'startActionPerformed'. Als Ergebnis wird nur diese lokale 'ArrayList' Werte enthalten, aber da diese niemals in das Feld 'Verzeichnis', das irgendwo dort definiert ist, eingetragen werden, wird Ihr Diktat immer auf nichts arbeiten. – SomeJavaGuy

+0

Ich dachte das Gleiche. Sind Sie sicher, dass Sie kein Problem mit dem Oszilloskop haben? – Coop

+0

Die 'ArrayList directory = new ArrayList();' kommt vor 'startActionPreformed'. Ich habe es hier falsch kopiert. –

Antwort

0

Vielleicht haben Sie die Datei geöffnet, wenn Sie es debuggen. Stellen Sie sicher, dass das Programm darauf zugreifen kann

Verwandte Themen