Skip to content

πŸ“ Java File Handling – Read, Write, and Process Files Easily

πŸ”– Introduction

Almost every real-world Java application needs to interact with files β€” reading data, writing logs, or saving configurations.

In this lesson, you’ll learn how to handle files using:

  • File
  • FileReader & BufferedReader
  • FileWriter & BufferedWriter
  • Scanner
  • and some best practices!

Let’s dive in! πŸŠβ€β™‚οΈ


πŸ“‚ Working with Files in Java

Java provides the java.io and java.nio packages for file operations.


πŸ“Œ Create or Check a File

import java.io.File;

public class Main {
    public static void main(String[] args) {
        File file = new File("example.txt");

        if (file.exists()) {
            System.out.println("File exists.");
        } else {
            System.out.println("File does not exist.");
        }
    }
}

✍️ Writing to a File – FileWriter

import java.io.FileWriter;
import java.io.IOException;

public class WriteExample {
    public static void main(String[] args) {
        try {
            FileWriter writer = new FileWriter("data.txt");
            writer.write("Hello, file world!");
            writer.close();
            System.out.println("Written successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

πŸ“– Reading from a File – FileReader + BufferedReader

import java.io.*;

public class ReadExample {
    public static void main(String[] args) {
        try {
            BufferedReader reader = new BufferedReader(new FileReader("data.txt"));
            String line;

            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }

            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

πŸ” Reading with Scanner

import java.io.File;
import java.util.Scanner;

public class ScannerRead {
    public static void main(String[] args) {
        try {
            File file = new File("data.txt");
            Scanner scanner = new Scanner(file);

            while (scanner.hasNextLine()) {
                System.out.println(scanner.nextLine());
            }

            scanner.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

🧽 Writing with BufferedWriter (More Efficient)

import java.io.*;

public class BufferedWriteExample {
    public static void main(String[] args) {
        try {
            BufferedWriter writer = new BufferedWriter(new FileWriter("notes.txt"));
            writer.write("This is written using BufferedWriter.");
            writer.newLine();
            writer.write("Buffered writing is fast!");
            writer.close();
            System.out.println("Buffered write successful.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

🧠 Best Practices

  • Always close streams using finally or try-with-resources.
  • Check if the file exists before reading.
  • Use BufferedReader/BufferedWriter for large files.
  • Avoid hardcoding file paths β€” use relative paths or config files.

πŸ” Try-With-Resources – Auto Closing

try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {
    String line;
    while ((line = reader.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

βœ… Cleaner and safer!

πŸ§ͺ Mini Challenge

Try creating a file named users.txt and write 3 user names into it. Then read and print each line from that file.

βœ… What You Learned

  • How to read from and write to text files
  • Use of FileReader, FileWriter, BufferedReader, BufferedWriter, and Scanner
  • Best practices to avoid resource leaks

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *