Java Write Files
Learn how to write data to files in Java
✍️ Writing Files in Java
Java offers multiple ways to write data to files using FileWriter, BufferedWriter, and PrintWriter classes. You can write text, append content, and handle different data types with proper resource management.
// Write text to a file
import java.io.FileWriter;
import java.io.IOException;
public class WriteFile {
public static void main(String[] args) {
try {
FileWriter writer = new FileWriter("output.txt");
writer.write("Hello, World!");
writer.close();
System.out.println("Successfully wrote to file.");
} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
Output:
Successfully wrote to file.
File Writing Classes
FileWriter
Simple text file writing
FileWriter writer = new FileWriter("file.txt");
BufferedWriter
Efficient buffered writing
BufferedWriter buffer = new BufferedWriter(writer);
PrintWriter
Formatted text output
PrintWriter print = new PrintWriter("file.txt");
Append Mode
Add content to existing files
new FileWriter("file.txt", true);
🔹 Basic File Writing
Write simple text to a file using FileWriter:
import java.io.FileWriter;
import java.io.IOException;
public class BasicWriting {
public static void main(String[] args) {
try {
// Create FileWriter object
FileWriter writer = new FileWriter("mydata.txt");
// Write content to file
writer.write("Welcome to Java file writing!\n");
writer.write("This is line 2.\n");
writer.write("Java makes file handling easy.");
// Close the writer
writer.close();
System.out.println("Data written to file successfully!");
} catch (IOException e) {
System.out.println("An error occurred: " + e.getMessage());
}
}
}
Output:
Data written to file successfully!
File content: Welcome to Java file writing!
This is line 2.
Java makes file handling easy.
🔹 Appending to Files
Add new content to existing files without overwriting:
import java.io.FileWriter;
import java.io.IOException;
public class AppendToFile {
public static void main(String[] args) {
try {
// Create FileWriter in append mode (true parameter)
FileWriter writer = new FileWriter("log.txt", true);
// Append new content
writer.write("\n--- New Entry ---\n");
writer.write("Date: 2024-01-15\n");
writer.write("Status: File append successful\n");
writer.close();
System.out.println("Content appended to file!");
} catch (IOException e) {
System.out.println("Error appending to file: " + e.getMessage());
}
}
}
Output:
Content appended to file!
🔹 Using BufferedWriter for Better Performance
BufferedWriter is more efficient for writing large amounts of data:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriting {
public static void main(String[] args) {
try {
FileWriter fileWriter = new FileWriter("buffered.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
// Write multiple lines efficiently
bufferedWriter.write("Line 1: Using BufferedWriter");
bufferedWriter.newLine(); // Add new line
bufferedWriter.write("Line 2: Better performance");
bufferedWriter.newLine();
bufferedWriter.write("Line 3: For large files");
// Important: Close BufferedWriter (also closes FileWriter)
bufferedWriter.close();
System.out.println("Buffered writing completed!");
} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
Output:
Buffered writing completed!
🔹 Using PrintWriter for Formatted Output
PrintWriter provides convenient methods for formatted writing:
import java.io.PrintWriter;
import java.io.IOException;
public class FormattedWriting {
public static void main(String[] args) {
try {
PrintWriter writer = new PrintWriter("formatted.txt");
// Write different data types
writer.println("Student Report");
writer.println("================");
writer.printf("Name: %s\n", "John Doe");
writer.printf("Age: %d\n", 20);
writer.printf("Grade: %.2f\n", 85.75);
writer.println("Status: Pass");
writer.close();
System.out.println("Formatted data written successfully!");
} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
Output:
Formatted data written successfully!
🔹 Try-with-Resources (Recommended)
Automatically close resources using try-with-resources:
import java.io.FileWriter;
import java.io.IOException;
public class SafeWriting {
public static void main(String[] args) {
// Try-with-resources automatically closes the writer
try (FileWriter writer = new FileWriter("safe.txt")) {
writer.write("This is safe file writing.\n");
writer.write("Resources are automatically closed.\n");
writer.write("No need to call close() manually!");
System.out.println("File written safely!");
} catch (IOException e) {
System.out.println("Error occurred: " + e.getMessage());
}
// FileWriter is automatically closed here
}
}
Output:
File written safely!