PushbackInputStream class

 

SeeInputStream class  for PushbackInputStreamís inherited methods.They are:

 

available( ) ††††††††††††††††† Tells how many bytes can be gotten without blocking.

close( ) ††††††††††††††††††††††† Close the stream.

mark( int readAheadLimit )Mark the present position in the stream.

markSupported( ) ††††††† Tell whether this stream supports the mark(...) operation.

read( )††††††††††††††††††††††† Read a single byte, returning it as the low end of an int.

read( byte[ ] b )†††††††††† Read bytes into a byte array.

read( byte[ ] b, int off, int len)Read bytes into a portion of a byte array.

ready( ) ††††††††††††††††††††††† Tell whether this stream is ready to be read.

reset( )††††††††††††††††††††††† Reset the stream to the beginning.

skip( long n )††††††††††††† Skip characters.

 

 

PushbackInputStream adds three unread(...) methods to those of InputStream.

 

voidunread( byte[ ] )††††††††††††††††††††††††††††††††††† Pushes back an array of bytes by copying it to the front of the pushback buffer.

voidunread( byte[ ] , int, len)†††††††††††††††††† Pushes back a portion of an array of bytes by copying it to the front of the pushback buffer.

voidunread( int )†††††††† ††††††††††††††††††††††††††††††† Pushes back a byte by copying it to the front of the pushback buffer.

 

 

PushbackInputStream peeks at a character and puts it back if itís not a left bracket.i.e.

 

import java.io.*;

 

try {

PushbackInputStream pbin = new PushbackInputStream(new BufferedInputStream(new FileInputStream( "test.txt" )));

int b= pbin.read( );†††††††††††††††††††††††††††††††††††††††††††† // read it

System.out.println( (char) b );

if ( b != '<')pbin.unread( b );††††††††††††††††††††††††††††† // put it back

pbin.close( );

} catch (Exception e) {†† }