Java.io.File Class in Java
Java File class is Java’s representation of a file or directory pathname. Because file and directory names have different formats on different platforms, a simple string is not adequate to name them. Java File class contains several methods for working with the pathname, deleting and renaming files, creating new directories, listing the contents of a directory, and determining several common attributes of files and directories.
- It is an abstract representation of files and directory pathnames.
- A pathname, whether abstract or in string form can be either absolute or relative. The parent of an abstract pathname may be obtained by invoking the getParent() method of this class.
- First of all, we should create the File class object by passing the filename or directory name to it. A file system may implement restrictions to certain operations on the actual file-system object, such as reading, writing, and executing. These restrictions are collectively known as access permissions.
- Instances of the File class are immutable; that is, once created, the abstract pathname represented by a File object will never change.
How to Create a File Object?
A File object is created by passing in a string that represents the name of a file, a String, or another File object. For example,
File a = new File("/usr/local/bin/geeks");
This defines an abstract file name for the geeks file in the directory /usr/local/bin. This is an absolute abstract file name.
Fields in File Class in Java
Field
|
Type
|
Description
|
pathSeperator |
String |
the character or string used to separate individual paths in a list of file system paths. |
pathSeperatorChar |
Char |
the character used to separate individual paths in a list of file system paths. |
separator |
String |
default name separator character represented as a string. |
separatorChar |
Char |
default name separator character. |
Constructors of Java File Class
- File(File parent, String child): Creates a new File instance from a parent abstract pathname and a child pathname string.
- File(String pathname): Creates a new File instance by converting the given pathname string into an abstract pathname.
- File(String parent, String child): Creates a new File instance from a parent pathname string and a child pathname string.
- File(URI uri): Creates a new File instance by converting the given file: URI into an abstract pathname.
Methods of File Class in Java
S. No. |
Method |
Description |
Return Type |
1. |
canExecute() |
Tests whether the application can execute the file denoted by this abstract pathname. |
boolean |
2. |
canRead() |
Tests whether the application can read the file denoted by this abstract pathname. |
boolean |
3. |
canWrite() |
Tests whether the application can modify the file denoted by this abstract pathname. |
boolean |
4. |
compareTo(File pathname) |
Compares two abstract pathnames lexicographically. |
int |
5. |
createNewFile() |
Atomically creates a new, empty file named by this abstract pathname. |
boolean |
6. |
createTempFile(String prefix, String suffix) |
Creates an empty file in the default temporary-file directory. |
File |
7. |
delete() |
Deletes the file or directory denoted by this abstract pathname. |
boolean |
8. |
equals(Object obj) |
Tests this abstract pathname for equality with the given object. |
boolean |
9. |
exists() |
Tests whether the file or directory denoted by this abstract pathname exists. |
boolean |
10. |
getAbsolutePath() |
Returns the absolute pathname string of this abstract pathname. |
String |
11. |
list() |
Returns an array of strings naming the files and directories in the directory. |
String[] |
12. |
getFreeSpace() |
Returns the number of unallocated bytes in the partition. |
long |
13. |
getName() |
Returns the name of the file or directory denoted by this abstract pathname. |
String |
14. |
getParent() |
Returns the pathname string of this abstract pathname’s parent. |
String |
15. |
getParentFile() |
Returns the abstract pathname of this abstract pathname’s parent. |
File |
16. |
getPath() |
Converts this abstract pathname into a pathname string. |
String |
17. |
setReadOnly() |
Marks the file or directory named so that only read operations are allowed. |
boolean |
18. |
isDirectory() |
Tests whether the file denoted by this pathname is a directory. |
boolean |
19. |
isFile() |
Tests whether the file denoted by this abstract pathname is a normal file. |
boolean |
20. |
isHidden() |
Tests whether the file named by this abstract pathname is a hidden file. |
boolean |
21. |
length() |
Returns the length of the file denoted by this abstract pathname. |
long |
22. |
listFiles() |
Returns an array of abstract pathnames denoting the files in the directory. |
File[] |
23. |
mkdir() |
Creates the directory named by this abstract pathname. |
boolean |
24. |
renameTo(File dest) |
Renames the file denoted by this abstract pathname. |
boolean |
25. |
setExecutable(boolean executable) |
A convenience method to set the owner’s execute permission. |
boolean |
26. |
setReadable(boolean readable) |
A convenience method to set the owner’s read permission. |
boolean |
27. |
setReadable(boolean readable, boolean ownerOnly) |
Sets the owner’s or everybody’s read permission. |
boolean |
28. |
setWritable(boolean writable) |
A convenience method to set the owner’s write permission. |
boolean |
29. |
toString() |
Returns the pathname string of this abstract pathname. |
String |
30. |
toURI() |
Constructs a file URI that represents this abstract pathname. |
URI |
Java File Class Examples
Example 1: Program to check if a file or directory physically exists or not.
Java
import java.io.File;
class fileProperty {
public static void main(String[] args)
{
String fname = args[ 0 ];
File f = new File(fname);
System.out.println( "File name :" + f.getName());
System.out.println( "Path: " + f.getPath());
System.out.println( "Absolute path:"
+ f.getAbsolutePath());
System.out.println( "Parent:" + f.getParent());
System.out.println( "Exists :" + f.exists());
if (f.exists()) {
System.out.println( "Is writable:"
+ f.canWrite());
System.out.println( "Is readable" + f.canRead());
System.out.println( "Is a directory:"
+ f.isDirectory());
System.out.println( "File Size in bytes "
+ f.length());
}
}
}
|
Output
File name :file.txt
Path: file.txt
Absolute path:C:\Users\akki\IdeaProjects\codewriting\src\file.txt
Parent:null
Exists :true
Is writable:true
Is readabletrue
Is a directory:false
File Size in bytes 20
Example 2: Program to display all the contents of a directory
Here we will accept a directory name from the keyboard and then display all the contents of the directory. For this purpose, list() method can be used as:
String arr[]=f.list();
In the preceding statement, the list() method causes all the directory entries copied into the array arr[]. Then pass these array elements arr[i] to the File object and test them to know if they represent a file or directory.
Java
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
class Contents {
public static void main(String[] args)
throws IOException
{
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.println( "Enter dirpath:" );
String dirpath = br.readLine();
System.out.println( "Enter the dirname" );
String dname = br.readLine();
File f = new File(dirpath, dname);
if (f.exists()) {
String arr[] = f.list();
int n = arr.length;
for ( int i = 0 ; i < n; i++) {
System.out.println(arr[i]);
File f1 = new File(arr[i]);
if (f1.isFile())
System.out.println( ": is a file" );
if (f1.isDirectory())
System.out.println( ": is a directory" );
}
System.out.println(
"No of entries in this directory " + n);
}
else
System.out.println( "Directory not found" );
}
}
|
Output
Enter dirpath:
C:\Users\akki\IdeaProjects\
Enter the dirname
codewriting
.idea
: is a directory
an1.txt
: is a file
codewriting.iml
: is a file
file.txt
: is a file
out
: is a directory
src
: is a directory
text
: is a file
No of entries in this directory 7
Related Post: FileReader and FileWriter in Java
Last Updated :
20 May, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...