Класс Java.io.PushbackReader в Java
java.io.PushbackReader - это класс считывателя потока символов, который позволяет помещать символы обратно в поток.
Декларация:
открытый класс PushbackReader расширяет FilterReader
Конструкторы:
- PushbackReader (Reader push): создает новый Pushback Reader - «push» с символьным буфером Pushback.
- PushbackReader (Reader push, int size): Создает новое средство чтения Pushback с буфером Pushback определенного размера.
Методы класса PushbackReader:
- read() : java.io.PushbackReader.read() reads a single character.
Syntax :public int read() Parameters : ----------- Return : reads single character from the Pushback buffer else, -1 i.e. when end of file is reached. Exception : -> IOException : If I/O error occurs.
- read(char[] carray, int offset, int maxlen) : java.io.PushbackReader.read(char[] carray, int offset, int maxlen) reads some portion of the character array
Syntax :public int read(char[] carray, int offset, int maxlen) Parameters : carray : destination buffer to be read into offset : starting position of the carray maxlen : maximum no. of characters to be read Return : reads some portion of the character array else, -1 i.e. when end of file is reached. Exception : -> IOException : If I/O error occurs.
- close() : java.io.PushbackReader.close() closes the PushbackReader and releases system resources associated with this stream to Garbage Collector.
Syntax :public void close() Parameters : ------ Return : void Exception : -> IOException : If I/O error occurs.
- mark(int arg) : java.io.PushbackReader.mark(int arg) marks the current position of the PushbackReader. In case of PushbackReader, this method always throws an exception.
Syntax :public void mark(int arg) Parameters : arg : integer specifying the read limit of the Stream Return : void
- skip(long char) : java.io.PushbackReader.skip(long char) skips and discards ‘char’ no. of characters from PushbackReader data.
Syntax :public long skip(long char) Parameters : char : no. of bytes of PushbackReader data to skip. Return : no. of bytes to be skipped Exception: -> IOException : in case I/O error occurs
- reset() : java.io.PushbackReader.reset() is invoked by mark() method. It repositions the PushbackReader to the marked position. In case of PushbackReader, this method always throws an exception.
Syntax :public void reset() Parameters : ---- Return : void Exception : -> IOException : If I/O error occurs.
- markSupported() : java.io.PushbackReader.markSupported() Tells whether this stream supports the mark() operation, which it does not.
Syntax :public boolean markSupported() Parameters : ------- Return : true if PushbackReader supports the mark() method else,false
- ready() : java.io.PushbackReader.ready() tells whether the stream is ready to be read or not
Syntax :public boolean ready() Parameters : ------- Return : true if the stream is ready to be read else,false
- unread(int char) : java.io.PushbackReader.unread(int char) pushes a single character to Pushback buffer. The next character to be read will have (char)char value, after this method returns.
Syntax :
public void unread(int char) Parameters : char : int value of the character to be pushed back Return : void Exception : -> IOException : If I/O error occurs or Pushback buffer is full.
- unread(char[] carray) : java.io.PushbackReader.unread(char[] carray) pushes an array of character to Pushback buffer. The array being pushed will have its index starting from 0.
Syntax :public void unread(char[] carray) Parameters : carray : character array to be pushed back Return : void Exception : -> IOException : If I/O error occurs or Pushback buffer is full.
Java code explaining the PushbackReader method : read(char[] carray), close(), markSupported(), read(), mark(), ready(), skip(), unread()
// Java program illustrating the working of PushbackReader
// read(char[] carray), close(), markSupported()
// read(), mark(), ready(), skip(), unread()
import
java.io.*;
public
class
NewClass
{
public
static
void
main(String[] args)
throws
IOException
{
try
{
// Initializing a StringReader and PushbackReader
String s =
"GeeksForGeeks"
;
StringReader str_reader =
new
StringReader(s);
PushbackReader geek_pushReader1 =
new
PushbackReader(str_reader);
PushbackReader geek_pushReader2 =
new
PushbackReader(str_reader);
// Use of ready() method :
System.out.println(
"Is stream1 ready : "
+ geek_pushReader1.ready());
System.out.println(
"Is stream2 ready : "
+ geek_pushReader2.ready());
// Use of read() :
System.out.println(
" We have used skip() method in 1 : "
);
System.out.print(
" Use of read() in 1 : "
);
for
(
int
i =
0
; i <
6
; i++)
{
char
c = (
char
) geek_pushReader1.read();
System.out.print(c);
// Use of skip() :
geek_pushReader1.skip(
1
);
}
System.out.println(
""
);
// USing read() :
char
[] carray =
new
char
[
20
];
System.out.println(
"Using read() in 2 : "
+ geek_pushReader2.read(carray));
// USe of markSupported() :
System.out.println(
" Is mark supported in 1 : "
+ geek_pushReader1.markSupported());
geek_pushReader2.unread(
"F"
);
// read the next char, which is the one we unread
char
c3 = (
char
) geek_pushReader2.read();
System.out.println(
"USe of unread() : "
+ c3);
// USe of mark() :
geek_pushReader1.mark(
5
);
// Use of close() :
geek_pushReader1.close();
}
catch
(IOException excpt)
{
System.out.println(
"mark not supported in 1"
);
}
}
}
Output :
Is stream1 ready : true Is stream2 ready : true We have used skip() method in 1 : Use of read() in 1 : GesoGe Using read() in 2 : 1 Is mark supported in 1 : false USe of unread() : F mark not supported in 1
This article is contributed by Mohit Gupta . If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.