File class in Java is used to work with files and directories. In this chapter, we will learn what the File class is, why it is used, its declaration, fields, constructors, methods, and multiple examples to clearly understand how file and directory operations work.
The File class is an abstract representation of file and directory pathnames. A pathname can be absolute (full path) or relative (path from the current directory).
The File class does not read or write file data, but it provides methods to:
The File class is used to:
It acts as a bridge between Java programs and the file system.
The File class belongs to the java.io package.
The following are commonly used static fields of the File class:
Field | Description |
pathSeparator | System-dependent path separator as a string |
pathSeparatorChar | System-dependent path separator character |
separator | System-dependent name separator as a string |
separatorChar | System-dependent name separator character |
The File class provides several constructors to create file or directory path objects.
This constructor creates a new File instance using the given pathname.
Here is the syntax:
This constructor creates a new File instance using a parent path and child path.
Here is the syntax:
This constructor creates a new File instance from a parent File object and child pathname.
Here is the syntax:
This constructor creates a new File instance by converting the given file: URI.
Here is the syntax:
The following example demonstrates different ways to create File objects.
The File class provides the following methods to work with files and directories:
| Modifier and Type | Method | Description |
|---|---|---|
| static File | createTempFile(String prefix, String suffix) | It creates an empty file in the default temporary-file directory, using the given prefix and suffix to generate its name. |
| boolean | createNewFile() | It atomically creates a new, empty file named by this abstract pathname if and only if a file with this name does not yet exist. |
| boolean | canWrite() | It tests whether the application can modify the file denoted by this abstract pathname.String[] |
| boolean | canExecute() | It tests whether the application can execute the file denoted by this abstract pathname. |
| boolean | canRead() | It tests whether the application can read the file denoted by this abstract pathname. |
| boolean | isAbsolute() | It tests whether this abstract pathname is absolute. |
| boolean | isDirectory() | It tests whether the file denoted by this abstract pathname is a directory. |
| boolean | isFile() | It tests whether the file denoted by this abstract pathname is a normal file. |
| String | getName() | It returns the name of the file or directory denoted by this abstract pathname. |
| String | getParent() | It returns the pathname string of this abstract pathname's parent, or null if this pathname does not name a parent directory. |
| Path | toPath() | It returns a java.nio.file.Path object constructed from the this abstract path. |
| URI | toURI() | It constructs a file: URI that represents this abstract pathname. |
| File[] | listFiles() | It returns an array of abstract pathnames denoting the files in the directory denoted by this abstract pathname |
| long | getFreeSpace() | It returns the number of unallocated bytes in the partition named by this abstract path name. |
| String[] | list(FilenameFilter filter) | It returns an array of strings naming the files and directories in the directory denoted by this abstract pathname that satisfy the specified filter. |
| boolean | mkdir() | It creates the directory named by this abstract pathname. |
Practice the following examples to understand different operations of the File class.
The following example demonstrates how to create a new file.
Output:
New file is created!
The following example demonstrates how to get absolute and canonical paths.
Output:
testFile1.txt true /home/Work/Project/File/testFile1.txt
The following example demonstrates how to list all file names in a directory.
Output:
info.properties info.properties.rtf .DS_Store .localized Alok news apache-tomcat-9.0.0.M19 apache-tomcat-9.0.0.M19.tar bestreturn_org.rtf BIODATA.pages BIODATA.pdf BIODATA.png struts2jars.zip workspace
The following example demonstrates how to read file properties such as size, hidden status, and write permission.
Output:
info.properties Can Write: true Is Hidden: false Length: 15 bytes info.properties.rtf Can Write: true Is Hidden: false Length: 385 bytes .DS_Store Can Write: true Is Hidden: true Length: 36868 bytes .localized Can Write: true Is Hidden: true Length: 0 bytes Alok news Can Write: true Is Hidden: false Length: 850 bytes apache-tomcat-9.0.0.M19 Can Write: true Is Hidden: false Length: 476 bytes apache-tomcat-9.0.0.M19.tar Can Write: true Is Hidden: false Length: 13711360 bytes bestreturn_org.rtf Can Write: true Is Hidden: false Length: 389 bytes BIODATA.pages Can Write: true Is Hidden: false Length: 707985 bytes BIODATA.pdf Can Write: true Is Hidden: false Length: 69681 bytes BIODATA.png Can Write: true Is Hidden: false Length: 282125 bytes workspace Can Write: true Is Hidden: false Length: 1972 bytes
We request you to subscribe our newsletter for upcoming updates.