如何在Java中的目录中创build一个文件?

如果我想在C:/a/b/test.txt创build一个文件,我可以这样做:

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

另外,我想使用FileOutputStream来创build文件。 那么我该怎么做呢? 出于某种原因,该文件不会在正确的目录中创build。

最好的办法是:

 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(); 

在写之前,你需要确保父目录存在。 你可以通过File#mkdirs()来做到这一点。

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

使用Java 7 ,您可以使用PathPathsFiles

 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()); } } } 

使用:

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

注意我在Windows文件系统中将正斜杠改为双斜杠。 这将在给定的path上创build一个空文件。

 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(); } } 

这应该在目录中创build一个新的文件

在指定path中创build新文件

 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(); } } } 

节目输出:

文件创build成功

一个更好,更简单的方法来做到这一点:

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

资源