Frage von LucaJenkis, 12

Ich habe versucht mit Java einen Ordner zu erstellen, aber es funktioniert nicht. Habt ihr eine Idee, wie ich den Fehler umgehen kann?

import java.io.*;

import java.util.*;

public class File {

public static void write(String path, String datei, String text){

    try{
        FileWriter fw = new FileWriter(path + "/" + datei, true);
        BufferedWriter bw = new BufferedWriter(fw);

        bw.write(text + "\r\n");
        //bw.newLine();

        bw.close();
        fw.close();
    }catch(IOException ex){

        System.out.println("Fehler: \n" + ex);

    }

}

public static void writeLine(String path, String datei){

    try{
        FileWriter fw = new FileWriter(path + "/" + datei, true);
        BufferedWriter bw = new BufferedWriter(fw);

        bw.write("\r\n");

        bw.close();
        fw.close();
    }catch(IOException ex){

        System.out.println("Fehler: \n" + ex);

    }

}

public static void init(){

    File file = new File("New");
    if(!file.exist()){

        file.mkdir();
        write("./New","Test.txt", "Hallo");
        writeLine("./New", "Test.txt");
        write("./New", "Test.txt", "Hallo2");
    }else{



    }

}

public static void main(String[] args) throws IOException{

    init();

}

}

Die Fehler sind :

File.java:44: error: constructor File in class File cannot be applied to given types;

    File file = new File("New");

                ^

required: no arguments

found: String

reason: actual and formal argument lists differ in length

File.java:45: error: cannot find symbol

    if(!file.exist()){

            ^

symbol: method exist()

location: variable file of type File

File.java:47: error: cannot find symbol

        file.mkdir();

            ^

symbol: method mkdir()

location: variable file of type File

3 errors

aber dieser Code funktioniert:

import java.io.File;

public class Test {

public static void main(String[] args) {

    File file = new File("Directory1");
    if (!file.exists()) {
        if (file.mkdir()) {
            System.out.println("Directory is created!");
        } else {
            System.out.println("Failed to create directory!");
        }
    }

    File files = new File("C:\\Directory2\\Sub2\\Sub-Sub2");
    if (!files.exists()) {
        if (files.mkdirs()) {
            System.out.println("Multiple directories are created!");
        } else {
            System.out.println("Failed to create multiple directories!");
        }
    }

}

}

Antwort
von SergeantPinpack, 7

Dein Fehler ist simpel.

Du hast eine Klasse namens "File" geschrieben. Dann erzeugst du eine neue Instanz, hast aber keinen passenden Constructor, denn der Compiler schaut zuerst in deiner Klasse und ignoriert den Import von java.io.File. Alles weitere sind Folgefehler, da die Variable "file" nicht definiert ist.

Im 2. Programm tritt das Problem nicht auf, da deine Klasse anders heißt.

Also einfach die Klasse im ersten Beispiel umbenennen, dann sollte es funktionieren. Oder sicherstellen, dass der richtige Constructor verwendet wird:

java.io.File file = new java.io.File("New");

Kommentar von LucaJenkis ,

Vielen Dank, das hatte ich ganz vergessen

Kommentar von SergeantPinpack ,

Passiert jedem mal :)

Man sitzt vor dem Problem und denkt: aber das muss doch funktionieren! Und dann stellt man fest, dass man einen kleinen, aber entscheidenden Punkt übersehen hat.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten