Java - StringReader read() method
Description
The Java StringReader read() method reads a single character.
Declaration
Following is the declaration for java.io.StringReader.read() method.
public int read()
Parameters
NA
Return Value
This method returns The character read, or -1 if the end of the stream has been reached.
Exception
IOException − If an I/O error occurs
Example - Usage of StringReader read() method
The following example shows the usage of StringReader read() method.
StringReaderDemo.java
package com.tutorialspoint;
import java.io.IOException;
import java.io.StringReader;
public class StringReaderDemo {
public static void main(String[] args) {
String s = "Hello World";
// create a new StringReader
StringReader sr = new StringReader(s);
try {
// read the first five chars
for (int i = 0; i < 5; i++) {
char c = (char) sr.read();
System.out.print("" + c);
}
// close the stream
sr.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Output
Let us compile and run the above program, this will produce the following result −
Hello
Example - Reading one character at a time
The following example shows the usage of StringReader read() method.
StringReaderDemo.java
package com.tutorialspoint;
import java.io.StringReader;
public class StringReaderDemo {
public static void main(String[] args) throws Exception {
StringReader reader = new StringReader("Java");
int ch;
while ((ch = reader.read()) != -1) {
System.out.print((char) ch + " ");
}
reader.close();
}
}
Output
Let us compile and run the above program, this will produce the following result−
J a v a
Explanation
The program reads each character one by one from the StringReader using read().
It loops until read() returns -1, which signals the end of the input.
The int returned by read() is cast to char for display.
Example - Reading characters and checking their Unicode values
The following example shows the usage of StringReader read() method.
StringReaderDemo.java
package com.tutorialspoint;
import java.io.StringReader;
public class StringReaderDemo {
public static void main(String[] args) throws Exception {
StringReader reader = new StringReader("AB");
int ch1 = reader.read();
int ch2 = reader.read();
int ch3 = reader.read(); // End of stream
System.out.println("First char: " + (char) ch1 + " (" + ch1 + ")");
System.out.println("Second char: " + (char) ch2 + " (" + ch2 + ")");
System.out.println("After end: " + ch3);
reader.close();
}
}
Output
Let us compile and run the above program, this will produce the following result−
First char: A (65) Second char: B (66) After end: -1
Explanation
This example shows both the character and its Unicode integer value.
It also demonstrates that read() returns -1 after all characters have been read.