Unterschied zw. BufferedReader & BufferedWriter

kazeer

Grünschnabel
Hallo, ich habe nun mehrere Beiträge zu BufferedWriter und BufferedReader durchgelesen und ich verstehe noch nicht ganz genau was ich damit anfangen soll.
Also ich benutze zum Laden von Dateien in Java :
Code:
private void lade(){
        chooser.setFileSelectionMode(chooser.OPEN_DIALOG);
        int erg = chooser.showOpenDialog(this);
        if (erg == JFileChooser.APPROVE_OPTION) {
            String path;
            path = chooser.getSelectedFile().getPath();
            text.setText("");
            try{
                BufferedReader br = new BufferedReader(new FileReader(path));
                String line;
                while ((line = br.readLine()) != null){
                    text.append(line +"\n");
                }
                br.close();
            }
            catch(Exception ex){
                 // Fenster mit Fehlermeldung einfügen
            }
        }
    }
und zum Speichern:
Code:
private void speichere(){
        chooser.setFileSelectionMode(chooser.SAVE_DIALOG);
        int erg = chooser.showSaveDialog(this);
        String t = text.getText();
        if (erg == JFileChooser.APPROVE_OPTION) {
            String path = chooser.getSelectedFile().getPath();
            try{
               FileWriter fw = new FileWriter(path);
               fw.write(t);
               fw.close();
            }
            catch (Exception ex){
                // Fenster mit Fehlermeldung einfügen
            }
        }
    }

Ich versuche jetzt alle Elemente, Dateien also das was drin steht zu speichern und beim laden später dann wieder richtig in dem array zu speichern.
Das funktioniert soweit bis auf die Tatsache dass ich noch einen Befehl brauche der den Inhalt in der Datei löscht und mit dem neuen Inhalt des Array überschreibt.
XY.write() schreibt ja nur neue Dateien und überschreibt nicht.So müsste man jedes mal beim Speichern eine neue Datei anlegen. Das ist aber nicht sinnvoll v.a. wenn man nachher nicht mehr weiß was aktuell ist..
MFG Kazeer
 
Zur Grundfrage laut Überschrift: Der Unterschied ist, dass der Eine zum Lesen und der andere zum Schreiben da ist :rolleyes:.

Du verwendest den BufferedWriter doch gar nicht, sondern den FileWriter
Code:
               FileWriter fw = new FileWriter(path);
versuchs mal so:
Code:
PrintWriter out = new PrintWriter ( new BufferedWriter (new FileWriter("Pfad" , true)));
Mit true oder false kannst du bestimmen, ob er den neuen Text an die Datei anhängt oder ob er sie überschreibt.
So müsste man jedes mal beim Speichern eine neue Datei anlegen. Das ist aber nicht sinnvoll v.a. wenn man nachher nicht mehr weiß was aktuell ist.
Doch, du kannst z.B. immer das aktuelle Datum/Uhrzeit abfragen und zu einem Teil des Dateinamens machen ;)
 
okay erstmal vielen dank für deine antwort.
ich werde das bei nächster gelegenheit mal testen.

ich hätte eine andere überschrift besser gewählt:

Unterschied zw. File ... und Buffered ... (also reader oder writer noch dranhängen)

Aber ich werde alle Varianten mal testen und gucken was funktioniert und was nicht.

Mfg kazeer
 

Neue Beiträge

Zurück