Java BufferedWriter

📝 Java BufferedWriter

BufferedWriter is a character output stream used to write text to a file efficiently.
It buffers characters to reduce the number of write operations, improving performance, especially for large files.

  • Package: java.io

  • Superclass: Writer

  • Often used with FileWriter for writing text files.


✅ Syntax

BufferedWriter bw = new BufferedWriter(new FileWriter("file_path"));
bw.write("Your text here"); // Write text
bw.newLine(); // Write a newline
bw.close(); // Close the writer

🔹 1. Writing Text to a File

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriterExample {
public static void main(String[] args) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(“example.txt”))) {
bw.write(“Hello, this is written using BufferedWriter!”);
bw.newLine(); // adds a new line
bw.write(“BufferedWriter is efficient for large files.”);
System.out.println(“Data written successfully.”);
} catch (IOException e) {
System.out.println(“Error writing file: “ + e.getMessage());
}
}
}

  • newLine() adds a platform-independent newline.

  • Use try-with-resources to automatically close the writer.


🔹 2. Appending Data to a File

To append to an existing file, pass true as the second argument to FileWriter:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class AppendBufferedWriter {
public static void main(String[] args) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(“example.txt”, true))) {
bw.newLine();
bw.write(“This line is appended to the file.”);
System.out.println(“Data appended successfully.”);
} catch (IOException e) {
System.out.println(“Error writing file: “ + e.getMessage());
}
}
}


🔹 3. Writing Multiple Lines Using a Loop

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriterLoop {
public static void main(String[] args) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(“numbers.txt”))) {
for (int i = 1; i <= 10; i++) {
bw.write(“Number: “ + i);
bw.newLine();
}
System.out.println(“Numbers written successfully.”);
} catch (IOException e) {
System.out.println(“Error writing file: “ + e.getMessage());
}
}
}

  • Efficient for writing large amounts of data.


🔹 4. Important Methods

MethodDescription
write(String s)Writes a string to the file
newLine()Writes a newline character
flush()Forces any buffered data to be written immediately
close()Closes the writer and releases resources

✅ Best Practices

  1. Always wrap FileWriter with BufferedWriter for efficiency.

  2. Use try-with-resources to automatically close the stream.

  3. Use flush() if you need to write buffered data immediately.


Summary

  • BufferedWriter = Efficient character output stream

  • Writes lines or text to a file

  • Use with FileWriter for text files

  • Ideal for writing large files or multiple lines

You may also like...