com.Ostermiller.util Java Utilities


com.Ostermiller.util
Class StraightStreamReader

java.lang.Object
  extended by java.io.Reader
      extended by com.Ostermiller.util.StraightStreamReader
All Implemented Interfaces:
Closeable, Readable

public class StraightStreamReader
extends Reader

A StraightStreamReader is a bridge from byte streams to character streams: It reads bytes and translates them into characters without using a character encoding. The characters that a StraightStreamReader returns may not be valid Unicode characters but they are guaranteed to be in the 0x00 to 0xFF range. More information about this class is available from ostermiller.org.

Most of the time you want to do character encoding translation when translating bytes to characters. If you are planning on displaying the text, you should always do this and should use an InputStreamReader for the purpose. Sometimes it is useful to treat characters as bytes with some extra bits. In these cases you would want to use a StraightStreamReader.

For top efficiency, consider wrapping an StraightStreamReader within a BufferedReader. For example:
BufferedReader in = new BufferedReader(new StraightStreamReader(System.in));

Since:
ostermillerutils 1.00.00
Author:
Stephen Ostermiller http://ostermiller.org/contact.pl?regarding=Java+Utilities

Constructor Summary
StraightStreamReader(InputStream in)
          Create a StraightStreamReader from an InputStream
 
Method Summary
 void close()
          Close the stream.
 void mark(int readAheadLimit)
          Mark the present position in the stream.
 boolean markSupported()
          Tell whether this stream supports the mark() operation.
 int read()
          Read a single character.
 int read(char[] cbuf)
          Read characters into an array.
 int read(char[] cbuf, int off, int len)
          Read characters into an array.
 boolean ready()
          Tell whether this stream is ready to be read.
 void reset()
          Reset the stream.
 long skip(long n)
          Skip characters.
 
Methods inherited from class java.io.Reader
read
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StraightStreamReader

public StraightStreamReader(InputStream in)
Create a StraightStreamReader from an InputStream

Parameters:
in - InputStream to wrap a Reader around.
Since:
ostermillerutils 1.00.00
Method Detail

close

public void close()
           throws IOException
Close the stream.

Specified by:
close in interface Closeable
Specified by:
close in class Reader
Throws:
IOException - If an I/O error occurs
Since:
ostermillerutils 1.00.00

mark

public void mark(int readAheadLimit)
          throws IOException
Mark the present position in the stream. Subsequent calls to reset() will attempt to reposition the stream to this point. Not all character-input streams support the mark() operation.

Overrides:
mark in class Reader
Parameters:
readAheadLimit - Limit on the number of characters that may be read while still preserving the mark. After reading this many characters, attempting to reset the stream may fail.
Throws:
IOException - If the stream does not support mark(), or if some other I/O error occurs
Since:
ostermillerutils 1.00.00

markSupported

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

Overrides:
markSupported in class Reader
Returns:
true if and only if this stream supports the mark operation.
Since:
ostermillerutils 1.00.00

read

public int read()
         throws IOException
Read a single character. This method will block until a character is available, an I/O error occurs, or the end of the stream is reached.

Overrides:
read in class Reader
Returns:
The character read, as an integer in the range 0 to 256 (0x00-0xff), or -1 if the end of the stream has been reached
Throws:
IOException - If an I/O error occurs
Since:
ostermillerutils 1.00.00

read

public int read(char[] cbuf)
         throws IOException
Read characters into an array. This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.

Overrides:
read in class Reader
Parameters:
cbuf - Destination buffer
Returns:
The number of bytes read, or -1 if the end of the stream has been reached
Throws:
IOException - If an I/O error occurs
Since:
ostermillerutils 1.00.00

read

public int read(char[] cbuf,
                int off,
                int len)
         throws IOException
Read characters into an array. This method will block until some input is available, an I/O error occurs, or the end of the stream is reached.

Specified by:
read in class Reader
Parameters:
cbuf - Destination buffer
off - Offset at which to start storing characters
len - Maximum number of characters to read
Returns:
The number of bytes read, or -1 if the end of the stream has been reached
Throws:
IOException - If an I/O error occurs
Since:
ostermillerutils 1.00.00

ready

public boolean ready()
              throws IOException
Tell whether this stream is ready to be read.

Overrides:
ready in class Reader
Returns:
True if the next read() is guaranteed not to block for input, false otherwise. Note that returning false does not guarantee that the next read will block.
Throws:
IOException - If an I/O error occurs
Since:
ostermillerutils 1.00.00

reset

public void reset()
           throws IOException
Reset the stream. If the stream has been marked, then attempt to reposition it at the mark. If the stream has not been marked, then attempt to reset it in some way appropriate to the particular stream, for example by repositioning it to its starting point. Not all character-input streams support the reset() operation, and some support reset() without supporting mark().

Overrides:
reset in class Reader
Throws:
IOException - If the stream has not been marked, or if the mark has been invalidated, or if the stream does not support reset(), or if some other I/O error occurs
Since:
ostermillerutils 1.00.00

skip

public long skip(long n)
          throws IOException
Skip characters. This method will block until some characters are available, an I/O error occurs, or the end of the stream is reached.

Overrides:
skip in class Reader
Parameters:
n - The number of characters to skip
Returns:
The number of characters actually skipped
Throws:
IllegalArgumentException - If n is negative
IOException - If an I/O error occurs
Since:
ostermillerutils 1.00.00

com.Ostermiller.util Java Utilities


Copyright © 2001-2012 by Stephen Ostermiller