
- Java.io - Home
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io package Useful Resources
- Java.io - Discussion
Java - StringReader class
Introduction
The Java StringReader class is a character stream whose source is a string.
Class declaration
Following is the declaration for Java.io.StringReader class −
public class StringReader extends Reader
Field
Following are the fields for Java.io.StringReader class −
protected Object lock − This is the object used to synchronize operations on this stream.
Class constructors
Sr.No. | Constructor & Description |
---|---|
1 |
StringReader(String s) This creates a new string reader. |
Class methods
Sr.No. | Method & Description |
---|---|
1 |
void close()
This method closes the stream and releases any system resources associated with it. |
2 |
void mark(int readAheadLimit)
This method marks the present position in the stream. |
3 |
boolean markSupported()
This method tells whether this stream supports the mark() operation, which it does. |
4 |
int read()
This method reads a single character. |
5 |
int read(char[] cbuf, int off, int len)
This method reads characters into a portion of an array. |
6 |
boolean ready()
This method tells whether this stream is ready to be read. |
7 |
void reset()
This method resets the stream to the most recent mark, or to the beginning of the string if it has never been marked. |
8 |
long skip(long ns)
This method skips the specified number of characters in the stream. |
Methods inherited
This class inherits methods from the following classes −
- Java.io.Reader
- Java.io.Object
Example - Properly closing a StringReader
The following example shows the usage of StringReader close() method.
StringReaderDemo.java
package com.tutorialspoint; import java.io.StringReader; import java.io.IOException; public class StringReaderDemo { public static void main(String[] args) throws IOException { StringReader reader = new StringReader("Hello, world!"); int data = reader.read(); System.out.println("First character: " + (char) data); reader.close(); // closing the reader System.out.println("Reader closed."); } }
Output
Let us compile and run the above program, this will produce the following result−
First character: H Reader closed.
Explanation
The reader reads one character successfully.
Then it's closed using close().
No error occurs because we donât attempt to read after closing.
Example - Basic use of mark() and reset()
The following example shows the usage of StringReader mark(int readAheadLimit) 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("abcdef"); System.out.print((char) reader.read()); // a reader.mark(3); // mark at position after 'a' System.out.print((char) reader.read()); // b System.out.print((char) reader.read()); // c reader.reset(); // go back to mark (before 'b') System.out.print((char) reader.read()); // b System.out.print((char) reader.read()); // c reader.close(); } }
Output
Let us compile and run the above program, this will produce the following result−
abcbc
Explanation
You read 'a', then mark the position.
Then read 'b' and 'c'.
After reset(), you go back to the position after 'a' and read 'b' and 'c' again.
Example - Checking if mark() is supported
The following example shows the usage of StringReader markSupported() method.
StringReaderDemo.java
package com.tutorialspoint; import java.io.StringReader; public class StringReaderDemo { public static void main(String[] args) { StringReader reader = new StringReader("Hello, world!"); System.out.println("Mark supported? " + reader.markSupported()); reader.close(); } }
Output
Let us compile and run the above program, this will produce the following result−
Mark supported? true
Explanation
This example simply checks if the StringReader supports marking (it does).
You can safely use mark() and reset() on this reader.