How to Read the Contents of a Txt File in Java
- Details
- Written past
- Final Updated on 28 July 2019 | Print Email
In this tutorial, we evidence you lot how to read from and write to text (or character) files using classes bachelor in the coffee.io package. First, let's expect at the different classes that are capable of reading and writing character streams.
ane. Reader, InputStreamReader, FileReader and BufferedReader
Reader is the abstruse form for reading grapheme streams. It implements the post-obit fundamental methods:
- read() : reads a unmarried character.
- read(char[]) : reads an array of characters.
- skip(long) : skips some characters.
- close() : closes the stream.
InputStreamReader is a bridge from byte streams to grapheme streams. It converts bytes into characters using a specified charset. The charset can be default character encoding of the operating system, or can be specified explicitly when creating an InputStreamReader .
FileReader is a user-friendly class for reading text files using the default character encoding of the operating system.
BufferedReader reads text from a grapheme stream with efficiency (characters are buffered to avoid frequently reading from the underlying stream) and provides a convenient method for reading a line of text readLine() .
The following diagram prove human relationship of these reader classes in the java.io package:
two. Author, OutputStreamWriter, FileWriter and BufferedWriter
Writer is the abstract class for writing graphic symbol streams. It implements the following fundamental methods:
- write(int) : writes a single character.
- write(char[]) : writes an array of characters.
- write(Cord) : writes a string.
- close() : closes the stream.
OutputStreamWriter is a bridge from byte streams to character streams. Characters are encoded into bytes using a specified charset. The charset can be default character encoding of the operating organisation, or can be specified explicitly when creating an OutputStreamWriter .
FileWriter is a user-friendly class for writing text files using the default character encoding of the operating system.
BufferedWriter writes text to a character stream with efficiency (characters, arrays and strings are buffered to avoid frequently writing to the underlying stream) and provides a convenient method for writing a line separator: newLine() .
The following diagram show relationship of these writer classes in the coffee.io packet:
3. Graphic symbol Encoding and Charset
When constructing a reader or writer object, the default character encoding of the operating organization is used (eastward.g. Cp1252 on Windows):
FileReader reader = new FileReader("MyFile.txt"); FileWriter writer = new FileWriter("YourFile.txt");
So if we want to use a specific charset, employ an InputStreamReader or OutputStreamWriter instead. For instance:
InputStreamReader reader = new InputStreamReader( new FileInputStream("MyFile.txt"), "UTF-xvi");
That creates a new reader with the Unicode character encoding UTF-16.
And the following statement constructs a writer with the UTF-8 encoding:
OutputStreamWriter author = new OutputStreamWriter( new FileOutputStream("YourFile.txt"), "UTF-viii");
In case we want to apply a BufferedReader , only wrap the InputStreamReader within, for example:
InputStreamReader reader = new InputStreamReader( new FileInputStream("MyFile.txt"), "UTF-16"); BufferedReader bufReader = new BufferedReader(reader);
And for a BufferedWriter example:
OutputStreamWriter writer = new OutputStreamWriter( new FileOutputStream("YourFile.txt"), "UTF-8"); BufferedWriter bufWriter = new BufferedWriter(writer);
Now, allow's expect at some complete examples.
4. Java Reading from Text File Example
The following small plan reads every single grapheme from the file MyFile.txt and prints all the characters to the output console:
packet net.codejava.io; import java.io.FileReader; import java.io.IOException; /** * This plan demonstrates how to read characters from a text file. * @author www.codejava.net * */ public class TextFileReadingExample1 { public static void main(String[] args) { try { FileReader reader = new FileReader("MyFile.txt"); int character; while ((character = reader.read()) != -1) { System.out.print((char) character); } reader.shut(); } catch (IOException e) { e.printStackTrace(); } } }
The following example reads a text file with assumption that the encoding is UTF-16:
packet net.codejava.io; import coffee.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; /** * This program demonstrates how to read characters from a text file using * a specified charset. * @author world wide web.codejava.internet * */ public class TextFileReadingExample2 { public static void principal(String[] args) { endeavor { FileInputStream inputStream = new FileInputStream("MyFile.txt"); InputStreamReader reader = new InputStreamReader(inputStream, "UTF-16"); int graphic symbol; while ((character = reader.read()) != -i) { System.out.impress((char) graphic symbol); } reader.close(); } grab (IOException east) { e.printStackTrace(); } } }
And the following example uses a BufferedReader to read a text file line by line (this is the nigh efficient and preferred way):
bundle cyberspace.codejava.io; import coffee.io.BufferedReader; import java.io.FileReader; import java.io.IOException; /** * This program demonstrates how to read characters from a text file * using a BufferedReader for efficiency. * @author world wide web.codejava.net * */ public form TextFileReadingExample3 { public static void primary(String[] args) { attempt { FileReader reader = new FileReader("MyFile.txt"); BufferedReader bufferedReader = new BufferedReader(reader); String line; while ((line = bufferedReader.readLine()) != nil) { Arrangement.out.println(line); } reader.close(); } catch (IOException due east) { e.printStackTrace(); } } }
5. Java Writing to Text File Example
In the following example, a FileWriter is used to write two words "Hi Earth" and "Skillful Adieu!" to a file named MyFile.txt:
package cyberspace.codejava.io; import coffee.io.FileWriter; import java.io.IOException; /** * This plan demonstrates how to write characters to a text file. * @author world wide web.codejava.net * */ public class TextFileWritingExample1 { public static void principal(Cord[] args) { endeavour { FileWriter author = new FileWriter("MyFile.txt", truthful); writer.write("Hi World"); writer.write("\r\n"); // write new line writer.write("Good Bye!"); writer.close(); } catch (IOException eastward) { eastward.printStackTrace(); } } }
Note that, a writer uses default grapheme encoding of the operating system past default. It besides creates a new file if not exits, or overwrites the existing one. If yous want to append text to an existing file, pass a boolean flag of truthful to constructor of the writer grade:
FileWriter writer = new FileWriter("MyFile.txt", true);
The following example uses a BufferedReader that wraps a FileReader to suspend text to an existing file:
package net.codejava.io; import coffee.io.BufferedWriter; import java.io.FileWriter; import coffee.io.IOException; /** * This program demonstrates how to write characters to a text file * using a BufferedReader for efficiency. * @author www.codejava.net * */ public course TextFileWritingExample2 { public static void main(String[] args) { attempt { FileWriter writer = new FileWriter("MyFile.txt", truthful); BufferedWriter bufferedWriter = new BufferedWriter(writer); bufferedWriter.write("Hello World"); bufferedWriter.newLine(); bufferedWriter.write("Meet You Once more!"); bufferedWriter.shut(); } take hold of (IOException e) { e.printStackTrace(); } } }
This is the preferred mode to write to text file because the BufferedReader provides efficient manner for writing character streams.
And the following example specifies specific character encoding (UTF-xvi) when writing to the file:
package net.codejava.io; import coffee.io.BufferedWriter; import coffee.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; /** * This plan demonstrates how to write characters to a text file using * a specified charset. * @writer www.codejava.net * */ public form TextFileWritingExample3 { public static void main(String[] args) { try { FileOutputStream outputStream = new FileOutputStream("MyFile.txt"); OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-16"); BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter); bufferedWriter.write("Xin chào"); bufferedWriter.newLine(); bufferedWriter.write("Hẹn gặp lại!"); bufferedWriter.close(); } catch (IOException eastward) { e.printStackTrace(); } } }
This program writes some Unicode cord (Vietnamese) to the specified text file.
Notation: From Coffee seven, you can use try-with-resources statement to simplify the code of opening and endmost the reader/writer. For example:
try (FileReader reader = new FileReader("MyFile.txt")) { int graphic symbol; while ((graphic symbol = reader.read()) != -i) { System.out.print((char) character); } } grab (IOException e) { e.printStackTrace(); }
References:
- Lesson: Basic I/O (The Java Tutorials)
Related File IO Tutorials:
- How to Read and Write Binary Files in Java
- How to read text file line past line in Java
- Coffee IO FileReader and FileWriter Examples
Other Java File IO Tutorials:
- How to listing files and directories in a directory in Java
- Coffee IO - Mutual File and Directory Operations Examples
- Java Serialization Basic Example
- Understanding Java Externalization with Examples
- How to execute Operating System Commands in Java
- 3 ways for reading user's input from panel in Coffee
- File change notification instance with Spotter Service API
- Java Scanner Tutorial and Code Examples
- How to compress files in Zippo format in Java
- How to extract ZIP file in Java
Near the Author:
Nam Ha Minh is certified Java programmer (SCJP and SCWCD). He started programming with Coffee in the time of Java ane.4 and has been falling in love with Java since and so. Brand friend with him on Facebook and watch his Java videos you YouTube.
Add comment
Source: https://www.codejava.net/java-se/file-io/how-to-read-and-write-text-file-in-java
0 Response to "How to Read the Contents of a Txt File in Java"
Post a Comment