Input/Output Reader/Writer finden file nicht

Steffen321

Mitglied
Hallo,

ich habe heute begonnen, etwas mit IOStreams zu testen.
Mein Programm soll dabei ein File erzeugen und mit einem Text versehen.
Dabei tritt bei mir der Fehler auf, dass meine Reader und Writer die Datei nicht finden, obwohl ich diese eigentlich übergebe.

Da ich gerade mit diesem Thema beginne, könnten es auch sehr einfache Fehler sein, nur komme ich momentan einfach nicht voran.

Ich würde mich sehr über Lösungsansätze oder tipps freuen 🙂

Code:
import java.awt.Desktop;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

 
public class FileCreator {
    public static void main(String args[])
    {
        //Allgemein
        String name = "testname";
        
        //File
        File file;
        
        
        FileReader fr;
        FileWriter fw;
        
        
        
        try {
 
            
            
            
            // Get file
            file = new File(""+name+".txt");
 
            fr = new FileReader(file);
            fw = new FileWriter(file);
            
            fw.write("Dieses File heißt " +name);
            
            
            fr.close();
            fw.close();
            
            //Erzeugen
            
            //Prüfen
            if (file.createNewFile()) {
                System.out.println("File " +file.getName() + " created");
                System.out.println(file.getAbsolutePath());
                Desktop desktop = Desktop.getDesktop();
                desktop.open(file);
            }
            else
                System.out.println("File already exists");
        }
        catch (Exception e) {
            System.err.println(e);
        }
    }
}
 
Also entweder Du willst die Datei lesen oder schreiben. Was Du da versuchst, kann so nicht gehen.

Die Exception kommt jetzt wohl, weil es die Datei nicht gibt.
Wenn es die Datei gibt, dann wirst Du aber wohl wieder eine Exception bekommen, denn der FileReader öffnet die Datei und dann ist diese gesperrt.

Dann nach dem Schreiben rufst du file.createNewFile() auf. Die Dokumentation besagt: dass dies eine neue Datei erzeugt, wenn diese noch nicht existiert. aber Du hast diese doch erzeugt! Daher wird er da nie rein laufen.

Und generell: Du solltest Dir einmal try with resources ansehen um das Schließen der Datei sicher zu stellen.
 

Zurück
Oben