DEV Community

Sudhakar V
Sudhakar V

Posted on

File Read & Write

In Java, file reading and writing can be done efficiently using buffered streams, readers, and writers. Here's a short explanation with examples:


1. Buffered File Reading (Using BufferedReader)

Buffers data for efficient reading (instead of byte-by-byte).

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFile {
    public static void main(String[] args) {
        try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) { // Reads line-by-line
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

2. Buffered File Writing (Using BufferedWriter)

Buffers data for efficient writing.

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

public class WriteFile {
    public static void main(String[] args) {
        try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
            writer.write("Hello, Java!");
            writer.newLine(); // Adds a newline
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

3. Key Classes

Class Purpose
FileReader / FileWriter Reads/Writes characters (text files).
BufferedReader / BufferedWriter Wraps readers/writers for buffered I/O.
FileInputStream / FileOutputStream Reads/Writes bytes (binary files).
Scanner Alternative for reading text (e.g., new Scanner(new File("file.txt"))).

4. Try-with-Resources

  • Automatically closes files (no need for finally blocks).
  • Used in the examples above (try (BufferedReader ...)).

When to Use?

  • Use BufferedReader/BufferedWriter for text files.
  • Use FileInputStream/FileOutputStream for binary files (images, etc.).
  • Use Scanner for parsing structured text.

Let me know if you'd like a deeper explanation! 🚀

Top comments (0)