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.
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();
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();
// ...
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());
}
}
}
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.
Eine bessere und einfachere Möglichkeit, dies zu tun:
File f = new File("C:/a/b/test.txt");
if(!f.exists()){
f.createNewFile();
}
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
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
Ü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);
}