Flash cards
Review the key moves
What is the main idea behind Java Write To Files?
Lesson checks
Practice each idea before moving on
Short Mimo-style checks built from this lesson's code, terms, and sequence.
Which statement best captures the main point of this lesson?
Complete the missing token from the example code.
import java.io.FileWriter; // Import the FileWriter ___Put the learning moves in the order that makes the concept easiest to apply.
Write To a File
If you are just starting with Java, the easiest way to write text to a file is by using the FileWriter class.
In the example below, we use FileWriter together with its write() method to create and write some text into a file.
Note
When you are done, you should close the writer with the close() method:
Example
import java.io.FileWriter; // Import the FileWriter class
import java.io.IOException; // Import the IOException class
public class WriteToFile {
public static void main(String[] args) {
try {
FileWriter myWriter = new FileWriter("filename.txt");
myWriter.write("Files in Java might be tricky, but it is fun enough!");
myWriter.close(); // must close manually
System.out.println("Successfully wrote to the file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}The output will be
Explanation: This program tries to write some text into a file named filename.txt . If everything works, the program will print "Successfully wrote to the file." in the console. If something goes wrong (for example, the file cannot be opened), it will print "An error occurred." instead.
Write To a File with try-with-resources
Since Java 7, you can use try-with-resources . This makes sure the writer is closed automatically, even if an error occurs:
Example
import java.io.FileWriter;
import java.io.IOException;
public class WriteToFile {
public static void main(String[] args) {
// FileWriter will be closed automatically here try (FileWriter myWriter = new FileWriter("filename.txt")) { myWriter.write("Files in Java might be tricky, but it is fun enough!"); System.out.println("Successfully wrote to the file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}Append to a File
Normally, FileWriter will overwrite a file if it already exists. If you want to add new content at the end of the file (without deleting what's already there), you can use the two-argument constructor and pass true as the second parameter. This puts the writer into append mode :
Example
import java.io.FileWriter;
import java.io.IOException;
public class AppendToFile {
public static void main(String[] args) {
// true = append mode try (FileWriter myWriter = new FileWriter("filename.txt", true)) { myWriter.write("\nAppended text!"); System.out.println("Successfully appended to the file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}The output will be
Explanation: This program adds the text "Appended text!" to the end of filename.txt instead of replacing the file's content.
Note
If the file does not already exist, Java will create it before appending.
Tip
To see what's inside the file, go to the Java Read Files chapter.
Other Ways to Write to Files
There are several classes you can use to write files in Java:
- FileWriter - easiest choice for basic text .
- BufferedWriter - better for large text files , because it is faster and supports handy features.
- FileOutputStream - best for binary data (images, audio, PDFs)
You will learn more about FileOutputStream and BufferedWriter in a later chapter.