In my previous article, I wrote about reading and writing different types of files in Java. In this quick article, you'll learn how to read and write text files in Java.
Java provides multiple APIs to read a text file. The following example demonstrates how you can use the FileReader class to read every single character from the input file and print them on the console:
try // create a reader FileReader reader = new FileReader("input.txt"); // read every characer int ch; while ((ch = reader.read()) != -1) System.out.print((char) ch); > // close the reader reader.close(); > catch (IOException ex) ex.printStackTrace(); >
If your text file has encoding other than the default character encoding of the operating system, use the InputStreamReader class instead:
try // create a reader FileInputStream fis = new FileInputStream("input.txt"); InputStreamReader reader = new InputStreamReader(fis, Charset.forName("UTF_16")); // read every characer int ch; while ((ch = reader.read()) != -1) System.out.print((char) ch); > // close the reader reader.close(); > catch (IOException ex) ex.printStackTrace(); >
Finally, we have the BufferedReader class that can be used to read a text file line by line as shown below:
try // create a reader BufferedReader br = new BufferedReader(new FileReader("input.txt")); // read until end of file String line; while ((line = br.readLine()) != null) System.out.println(line); > // close the reader br.close(); > catch (IOException ex) ex.printStackTrace(); >
The following example shows how you can use the FileWriter class to write data to a text file:
try // create a writer FileWriter writer = new FileWriter("output.txt"); // write data to file writer.write("Hey, there!"); writer.write("\n"); writer.write("What's up?"); // close the writer writer.close(); > catch (IOException ex) ex.printStackTrace(); >
The above example uses the default character encoding of the operating system to write text to a file. If you want to specify a different character encoding, use the OutputStreamWriter class instead:
try // create a writer FileOutputStream fos = new FileOutputStream("output.txt"); OutputStreamWriter writer = new OutputStreamWriter(fos, Charset.forName("UTF_16")); // write data to file writer.write("Hey, there!"); writer.write("\n"); writer.write("What's up?"); // close the writer writer.close(); > catch (IOException ex) ex.printStackTrace(); >
Finally, we have the BufferedWriter class for writing a text file as shown below:
try // create a writer BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt")); // write text to file bw.write("Hey, there!"); bw.newLine(); bw.write("Do you need a coffee?"); // close the writer bw.close(); > catch (IOException ex) ex.printStackTrace(); >
For more file read and write examples, check out the Reading and Writing Files in Java tutorial. ✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.