Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java's createNewFile() - will it also create directories?

People also ask

How do you create a file and directory in Java?

File provides methods like createNewFile() and mkdir() to create new file and directory in Java. These methods returns boolean, which is the result of that operation i.e. createNewFile() returns true if it successfully created file and mkdir() returns true if the directory is created successfully.

What file method creates a new directory?

Creating a new directory The mkdir() method of this class creates a directory with the path represented by the current object.

What does file new file do in Java?

The File. createNewFile() is a method of File class which belongs to a java.io package. It does not accept any argument. The method automatically creates a new, empty file.

Can a Java file be a directory?

A file system structure containing files and other directories is called directories in java, which are being operated by the static methods in the java. nio. file. files class along with other types of files, and a new directory is created in java using Files.


No.
Use tmp.getParentFile().mkdirs() before you create the file.


File theDir = new File(DirectoryPath);
if (!theDir.exists()) theDir.mkdirs();

File directory = new File(tmp.getParentFile().getAbsolutePath());
directory.mkdirs();

If the directories already exist, nothing will happen, so you don't need any checks.


Java 8 Style

Path path = Paths.get("logs/error.log");
Files.createDirectories(path.getParent());

To write on file

Files.write(path, "Log log".getBytes());

To read

System.out.println(Files.readAllLines(path));

Full example

public class CreateFolderAndWrite {

    public static void main(String[] args) {
        try {
            Path path = Paths.get("logs/error.log");
            Files.createDirectories(path.getParent());

            Files.write(path, "Log log".getBytes());

            System.out.println(Files.readAllLines(path));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

StringUtils.touch(/path/filename.ext) will now (>=1.3) also create the directory and file if they don't exist.