it-swarm.com.de

Wie erstelle ich eine Datei in einem Verzeichnis in Java?

Wenn ich eine Datei in C:/a/b/test.txt erstellen möchte, kann ich Folgendes tun:

File f = new File("C:/a/b/test.txt");

Außerdem möchte ich FileOutputStream verwenden, um die Datei zu erstellen. Wie soll ich das machen? Aus irgendeinem Grund wird die Datei nicht im richtigen Verzeichnis erstellt.

136
Uerefer

Am besten geht es:

String path = "C:" + File.separator + "hello" + File.separator + "hi.txt";
// Use relative path for Unix systems
File f = new File(path);

f.getParentFile().mkdirs(); 
f.createNewFile();
218
RMT

Sie müssen sicherstellen, dass die übergeordneten Verzeichnisse vorhanden sind, bevor Sie schreiben. Sie können dies mit File#mkdirs() tun.

File f = new File("C:/a/b/test.txt");
f.getParentFile().mkdirs();
// ...
48
BalusC

Mit Java 7 können Sie Path , Paths und Files verwenden:

import Java.io.IOException;
import Java.nio.file.FileAlreadyExistsException;
import Java.nio.file.Files;
import Java.nio.file.Path;
import Java.nio.file.Paths;

public class CreateFile {

    public static void main(String[] args) throws IOException {
        Path path = Paths.get("/tmp/foo/bar.txt");

        Files.createDirectories(path.getParent());

        try {
            Files.createFile(path);
        } catch (FileAlreadyExistsException e) {
            System.err.println("already exists: " + e.getMessage());
        }
    }
}
32
user1907906

Benutzen:

File f = new File("C:\\a\\b\\test.txt");
f.mkdirs();
f.createNewFile();

Beachten Sie, dass ich die Schrägstriche für Pfade im Windows-Dateisystem in Double-Back-Schrägstriche geändert habe. Dadurch wird eine leere Datei im angegebenen Pfad erstellt.

11
Marcelo

Eine bessere und einfachere Möglichkeit, dies zu tun:

File f = new File("C:/a/b/test.txt");
if(!f.exists()){
   f.createNewFile();
}

Quelle

1
Mehdi
String path = "C:"+File.separator+"hello";
String fname= path+File.separator+"abc.txt";
    File f = new File(path);
    File f1 = new File(fname);

    f.mkdirs() ;
    try {
        f1.createNewFile();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Dadurch sollte eine neue Datei in einem Verzeichnis erstellt werden

1
Chitta

Neue Datei in angegebenem Pfad erstellen

import Java.io.File;
import Java.io.IOException;

public class CreateNewFile {

    public static void main(String[] args) {
        try {
            File file = new File("d:/sampleFile.txt");
            if(file.createNewFile())
                System.out.println("File creation successfull");
            else
                System.out.println("Error while creating File, file already exists in specified path");
        }
        catch(IOException io) {
            io.printStackTrace();
        }
    }

}

Programmausgabe:

Dateierstellung erfolgreich 

0
AKHY

Überraschenderweise geben viele Antworten keinen vollständigen Arbeitscode. Hier ist es:

public static void createFile(String fullPath) throws IOException {
    File file = new File(fullPath);
    file.getParentFile().mkdirs();
    file.createNewFile();
}

public static void main(String [] args) throws Exception {
    String path = "C:/donkey/bray.txt";
    createFile(path);
}
0
MasterJoe2