Input/Output File exists canRead canWrite

domme5599

Mitglied
Guten Abend,

ich möchte für mich selbst zu Fortbildung mich mit File beschäftigen.
Ich will ein Programm schreiben, dass mir drei Beispieldateien erstellt und von allen drei prüft ob sie existieren, lesbar und beschreibbar sind. Die boolschen Werte möchte ich jeweils ausgegeben bekommen.

Einen Code habe ich aber dieser gibt nichts aus beim Ausführen.
Meine Vermutung ist, dass die Dateien zwar erstellt werden aber die Ausgabe nicht richtig ist

Weiterhin sei hier verziehen, dass der Code optisch noch nicht schön ist.

import java.io.File;

public class FileChecker {

public static void main(String[]args) {

File Datei1 = new File("C:/Beispiel1.txt");
File Datei2 = new File("C:/Beispiel2.txt");
File Datei3 = new File("C:/Beispiel3.txt");

if(Datei1.exists() || Datei1.canRead() || Datei1.canWrite()) {

System.out.println("Beispiel1.txt existiert ist lesbar und beschreibbar ist");

}

if(Datei2.exists() || Datei2.canRead() || Datei2.canWrite()) {

System.out.println("Beispiel2.txt existiert ist lesbar und beschreibbar ist");

}

if(Datei3.exists() || Datei3.canRead() || Datei3.canWrite()) {

System.out.println("Beispiel3.txt existiert ist lesbar und beschreibbar ist");

}

}

}
 
Java:
import java.io.File;

public class FileChecker {

    public static void main(String[]args) {

        File Datei1 = new File("C:/Beispiel1.txt");
        File Datei2 = new File("C:/Beispiel2.txt");
        File Datei3 = new File("C:/Beispiel3.txt");

            if(Datei1.exists() || Datei1.canRead() || Datei1.canWrite()) {

                System.out.println("Beispiel1.txt existiert ist lesbar und beschreibbar ist");

                    }

            if(Datei2.exists() || Datei2.canRead() || Datei2.canWrite()) {

                System.out.println("Beispiel2.txt existiert ist lesbar und beschreibbar ist");
       
                    }

            if(Datei3.exists() || Datei3.canRead() || Datei3.canWrite()) {   

                System.out.println("Beispiel3.txt existiert ist lesbar und beschreibbar ist");

                    }

                }

            }
 
Java:
import java.io.File;
import java.io.IOException;

public class FileChecker {

    private boolean checkFile(File file1, File file2, File file3) {
        if(file1 != null && file2 != null && file3 != null) {
            try {
                file1.createNewFile();
                file2.createNewFile();
                file3.createNewFile();
                }
                catch(IOException e) {
                    System.err.println("Error creating" + file1.toString() + file2.toString() + file3.toString());
                        }
    if(file1.isFile() && file1.canWrite() && file1.canRead() && file2.isFile() && file2.canWrite() && file2.canRead() && file3.isFile() && file3.canWrite() && file3.canRead()) {
        return true;
        }
    return false;
    }
    public static void main(String[] args) {
        DateiErzeugen dat1 = newDateiErzeugen();
        DateiErzeugen dat2 = newDateiErzeugen();
        DateiErzeugen dat3 = newDateiErzeugen();
        String dat1 = "test1.txt";
        String dat2 = "test2.txt";
        String dat3 = "test3.txt";          
        if(dat1.checkFile(new File(dat1)) && dat2.checkFile(new File(dat2)) && dat3.checkFile(new File(dat3))) {
            System.out.println(dat1 + " erzeugt");
            System.out.println(dat2 + " erzeugt");
            System.out.println(dat3 + " erzeugt");
            }
        }
    }

Der Code sollte jetzt so richtig sein allerdings muss ich noch eine Methode finden die main ersetzt, weil hier ja etwas ausgegeben werden soll was so natürlich der Compiler nicht kompiliert.

Weiß hier jmd. eine Methode?
 
newDateiErzeugen soll eigentlich die jeweils drei Dateien erzeugen die ja dann auf Existenz, Schreibbarkeit und Lesbarkeit überprüft werden sollen. Allerdings glaube ich dass es dafür noch die Methode createNewFile gibt?
 
Du würfelst hier alles wild durcheinander. Jetzt nimm doch mal den ersten Code und pack einfach mal nach der Zeile File Datei3 = new File("C:/Beispiel3.txt"); den Code
Java:
try {
    Datei1.createNewFile();
    Datei2.createNewFile();
    Datei3.createNewFile();
} catch (IOException ex) {
    ex.printStackTrace();
}
Danach gehst Du her und teilst den Code in sinnvolle Methoden auf.
 
Danke für den Hinweis.
Ich kann nicht sonderlich strukturiert programmieren🙁

Java:
import java.io.File;
import java.io.IOException;

public class FileChecker1 {

    public static void main(String[]args) {

        File Datei1 = new File("C:/Beispiel1.txt");
        File Datei2 = new File("C:/Beispiel2.txt");
        File Datei3 = new File("C:/Beispiel3.txt");

        try {
            Datei1.createNewFile();
            Datei2.createNewFile();
            Datei3.createNewFile();
                }
            catch (IOException ex) {
                       ex.printStackTrace();
                    }

        private boolean checkFile() {

            if(Datei1.exists() && Datei1.canRead() && Datei1.canWrite() && Datei2.exists() && Datei2.canRead() && Datei2.canWrite() && Datei3.exists() && Datei3.canRead() && Datei3.canWrite()) {

            return true;

                    }

        return false;

        }

    }

}

Für die Übergabeparameter von checkFile muss ich mir noch was überlegen.
 
Zuletzt bearbeitet:
Ich kann nicht sonderlich strukturiert programmieren
Nimm das strukturiert raus 😛 Kommt schon noch.

Du hast jetzt eine Methode in der Methode - das funktioniert nicht.

Java:
public class FileChecker {
    public static void main(String[]args) {
        File Datei1 = new File("C:/Beispiel1.txt");
        File Datei2 = new File("C:/Beispiel2.txt");
        File Datei3 = new File("C:/Beispiel3.txt");

        try {
            Datei1.createNewFile();
            Datei2.createNewFile();
            Datei3.createNewFile();
        } catch (IOException ex) {
            ex.printStackTrace();
            System.exit(0);
        }

        if(Datei1.exists() || Datei1.canRead() || Datei1.canWrite()) {
            System.out.println("Beispiel1.txt existiert ist lesbar und beschreibbar ist");
        }

        if(Datei2.exists() || Datei2.canRead() || Datei2.canWrite()) {
            System.out.println("Beispiel2.txt existiert ist lesbar und beschreibbar ist");
        }

        if(Datei3.exists() || Datei3.canRead() || Datei3.canWrite()) { 
            System.out.println("Beispiel3.txt existiert ist lesbar und beschreibbar ist");
        }
    }
}
 
Das dass nicht funktionieren kann ist mir bewusst, deshalb wollte ich ja die Abfrage Existenz, Lesbar und Schreibbar
in ab private boolean checkFile haben, aber da sagt mir ja der Compiler illegal start of expression.
Das sagt er denke ich, weil ich private boolean checkFile() nichts mitgeben.

Und wie letztes Mal schon ich habe leider nur von der Informationstechnik eine sehr gute Kenntnis.
 
aber da sagt mir ja der Compiler illegal start of expression.
Das sagt er denke ich, weil ich private boolean checkFile() nichts mitgeben.
Die Meldung kommt, weil Du in einer Methode eine Methode deklarierst.

Wenn Du für das Prüfen eine Methode haben willst:

Java:
public class FileChecker {
    public boolean checkFile(File file) {
        return file.isFile() && file.canRead() && file.canWrite();
    }

    public static void main(String[]args) {
        File Datei1 = new File("C:/Beispiel1.txt");
        File Datei2 = new File("C:/Beispiel2.txt");
        File Datei3 = new File("C:/Beispiel3.txt");

        try {
            Datei1.createNewFile();
            Datei2.createNewFile();
            Datei3.createNewFile();
        } catch (IOException ex) {
            ex.printStackTrace();
            System.exit(0);
        }

        FileChecker checker = new FileChecker();

        if(!checker.checkFile(Datei1)) {
            System.out.println("Beispiel1.txt existiert ist lesbar und beschreibbar ist");
        }
        if(!checker.checkFile(Datei2)) {
            System.out.println("Beispiel2.txt existiert ist lesbar und beschreibbar ist");
        }
        if(!checker.checkFile(Datei3)) {
            System.out.println("Beispiel3.txt existiert ist lesbar und beschreibbar ist");
        }
    }
}
 

Zurück
Oben