Java Learner logo
← Back to Learn
Intermediate

File I/O & Streams

Learn to read and write files, work with directories, and process data streams in Java.

Topics

File I/O & Streams

Working with Files

The File class represents file and directory paths. It provides methods to check file properties and perform file operations.

File Operations

import java.io.File;
import java.io.IOException;

public class FileOperations {
    public static void main(String[] args) {
        // Create a File object
        File file = new File("example.txt");
        
        try {
            // Create a new file
            if (file.createNewFile()) {
                System.out.println("File created: " + file.getName());
            } else {
                System.out.println("File already exists");
            }
        } catch (IOException e) {
            System.out.println("Error creating file");
            e.printStackTrace();
        }
        
        // Check if file exists
        if (file.exists()) {
            System.out.println("File exists!");
            
            // Get file information
            System.out.println("Name: " + file.getName());
            System.out.println("Absolute path: " + file.getAbsolutePath());
            System.out.println("Size: " + file.length() + " bytes");
            System.out.println("Can read: " + file.canRead());
            System.out.println("Can write: " + file.canWrite());
            System.out.println("Is file: " + file.isFile());
            System.out.println("Is directory: " + file.isDirectory());
        }
        
        // Delete file
        if (file.delete()) {
            System.out.println("File deleted");
        }
    }
}

Working with Directories

import java.io.File;

public class DirectoryOperations {
    public static void main(String[] args) {
        // Create a directory
        File dir = new File("myFolder");
        
        if (dir.mkdir()) {
            System.out.println("Directory created");
        }
        
        // Create nested directories
        File nestedDir = new File("parent/child/grandchild");
        if (nestedDir.mkdirs()) {
            System.out.println("Nested directories created");
        }
        
        // List files in a directory
        File currentDir = new File(".");
        String[] files = currentDir.list();
        
        System.out.println("Files in current directory:");
        for (String filename : files) {
            System.out.println(filename);
        }
        
        // List files with File objects
        File[] fileObjects = currentDir.listFiles();
        for (File f : fileObjects) {
            if (f.isDirectory()) {
                System.out.println("[DIR] " + f.getName());
            } else {
                System.out.println("[FILE] " + f.getName());
            }
        }
    }
}