Readers and Writers and their respective subclasses provide simple I/O for text / character-based data.
Introduction
The BufferedReader class is a wrapper for other Reader classes that serves two main purposes:
Basics of using a BufferedReader
The normal pattern for using a BufferedReader is as follows. First, you obtain the Reader that you want to read characters from. Next you instantiate a BufferedReader that wraps the Reader. Then you read character data. Finally you close the BufferedReader which close the wrapped `Reader. For example:
File someFile = new File(...); int aCount = 0; try (FileReader fr = new FileReader(someFile); BufferedReader br = new BufferedReader(fr)) { // Count the number of 'a' characters. int ch; while ((ch = br.read()) != -1) { if (ch == 'a') { aCount++; } } System.out.println("There are " + aCount + " 'a' characters in " + someFile); }
You can apply this pattern to any Reader
Notes:
The BufferedReader buffer size
The BufferedReader.readLine() method
Example: reading all lines of a File into a List
This is done by getting each line in a file, and adding it into a List<String>. The list is then returned:
public List<String> getAllLines(String filename) throws IOException { List<String> lines = new ArrayList<String>(); try (BufferedReader br = new BufferedReader(new FileReader(filename))) { String line = null; while ((line = reader.readLine) != null) { lines.add(line); } } return lines; }
Java 8 provides a more concise way to do this using the lines() method:
public List<String> getAllLines(String filename) throws IOException { try (BufferedReader br = new BufferedReader(new FileReader(filename))) { return br.lines().collect(Collectors.toList()); } return Collections.empty(); }
Java StringWriter class is a character stream that collects output from string buffer, which can be used to construct a string.
The StringWriter class extends the Writer class.
In StringWriter class, system resources like network sockets and files are not used, therefore closing the StringWriter is not necessary.
import java.io.*; public class StringWriterDemo { public static void main(String[] args) throws IOException { char[] ary = new char[1024]; StringWriter writer = new StringWriter(); FileInputStream input = null; BufferedReader buffer = null; input = new FileInputStream("c://stringwriter.txt"); buffer = new BufferedReader(new InputStreamReader(input, "UTF-8")); int x; while ((x = buffer.read(ary)) != -1) { writer.write(ary, 0, x); } System.out.println(writer.toString()); writer.close(); buffer.close(); } }
The above example helps us to know simple example of StringWriter using BufferedReader to read file data from the stream.
Learn All in Tamil © Designed & Developed By Tutor Joes | Privacy Policy | Terms & Conditions