The File
class in java.io
package represents a file or directory path in the file system. It provides methods to create, delete, inspect, and manipulate files and directories but does not provide direct file content reading or writing capabilities. Those operations are done using other stream classes like FileReader
, FileWriter
, etc.
Commonly Used Constructors and Methods


Simple Program Using File Class
Mahesh wants to create a directory named "MaheshFolder"
and inside it create an empty file called "file1.txt"
. He also wants to check if the file and directory exist.
import java.io.File; import java.io.IOException; public class FileSimpleExample { public static void main(String[] args) { try { File dir = new File("MaheshFolder"); if (!dir.exists()) { dir.mkdir(); System.out.println("Directory created: " + dir.getAbsolutePath()); } File file = new File(dir, "file1.txt"); if (!file.exists()) { file.createNewFile(); System.out.println("File created: " + file.getAbsolutePath()); } System.out.println("Directory exists? " + dir.exists()); System.out.println("File exists? " + file.exists()); System.out.println("Is directory? " + dir.isDirectory()); System.out.println("Is file? " + file.isFile()); } catch (IOException e) { e.printStackTrace(); } } }
Problem Statement:
LotusJavaPrince wants to create a small file management utility where:
- He can create a new directory.
- Create multiple files inside that directory.
- List all files inside the directory.
- Delete any file based on its name.
- Check file properties such as size and last modified date.
import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Scanner; public class FileManagementUtility { private static Scanner scanner = new Scanner(System.in); private static File currentDir; public static void main(String[] args) { System.out.print("Enter directory name to create/use: "); String dirName = scanner.nextLine(); currentDir = new File(dirName); if (!currentDir.exists()) { if (currentDir.mkdirs()) { System.out.println("Directory created: " + currentDir.getAbsolutePath()); } else { System.out.println("Failed to create directory."); return; } } else { System.out.println("Using existing directory: " + currentDir.getAbsolutePath()); } boolean running = true; while (running) { System.out.println("\nMenu:"); System.out.println("1. Create File"); System.out.println("2. List Files"); System.out.println("3. Delete File"); System.out.println("4. File Info"); System.out.println("5. Exit"); System.out.print("Choose an option: "); int choice = Integer.parseInt(scanner.nextLine()); switch (choice) { case 1: createFile(); break; case 2: listFiles(); break; case 3: deleteFile(); break; case 4: fileInfo(); break; case 5: running = false; System.out.println("Exiting utility."); break; default: System.out.println("Invalid choice."); } } } private static void createFile() { System.out.print("Enter file name to create: "); String fileName = scanner.nextLine(); File file = new File(currentDir, fileName); try { if (file.exists()) { System.out.println("File already exists."); } else if (file.createNewFile()) { System.out.println("File created: " + file.getAbsolutePath()); } else { System.out.println("Failed to create file."); } } catch (IOException e) { System.out.println("Error creating file: " + e.getMessage()); } } private static void listFiles() { String[] files = currentDir.list(); if (files == null || files.length == 0) { System.out.println("No files found."); return; } System.out.println("Files in directory:"); for (String file : files) { System.out.println("- " + file); } } private static void deleteFile() { System.out.print("Enter file name to delete: "); String fileName = scanner.nextLine(); File file = new File(currentDir, fileName); if (!file.exists()) { System.out.println("File does not exist."); return; } if (file.delete()) { System.out.println("File deleted: " + fileName); } else { System.out.println("Failed to delete file."); } } private static void fileInfo() { System.out.print("Enter file name to get info: "); String fileName = scanner.nextLine(); File file = new File(currentDir, fileName); if (!file.exists()) { System.out.println("File does not exist."); return; } System.out.println("File name: " + file.getName()); System.out.println("Absolute path: " + file.getAbsolutePath()); System.out.println("Size (bytes): " + file.length()); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); System.out.println("Last modified: " + sdf.format(file.lastModified())); } }
Output
Enter directory name to create/use: BankFiles
Directory created: /Users/lotus/BankFiles
Menu:
1. Create File
2. List Files
3. Delete File
4. File Info
5. Exit
Choose an option: 1
Enter file name to create: transactions.txt
File created: /Users/lotus/BankFiles/transactions.txt
Menu:
1. Create File
2. List Files
3. Delete File
4. File Info
5. Exit
Choose an option: 2
Files in directory:
- transactions.txt
Menu:
1. Create File
2. List Files
3. Delete File
4. File Info
5. Exit
Choose an option: 4
Enter file name to get info: transactions.txt
File name: transactions.txt
Absolute path: /Users/lotus/BankFiles/transactions.txt
Size (bytes): 0
Last modified: 30/05/2025 12:45:20
Menu:
1. Create File
2. List Files
3. Delete File
4. File Info
5. Exit
Choose an option: 5
Exiting utility.
Code language: JavaScript (javascript)
The File
class provides an abstraction to represent file/directory pathnames in a system-independent way.
- It allows checking existence, creating/deleting files/directories, and querying metadata (size, last modified).
- It does not handle file content reading or writing; separate streams are used for that.
- Great for simple file system operations and building utilities such as file explorers or management tools.