org.randomcoder.io
Class SequenceReader

java.lang.Object
  extended by java.io.Reader
      extended by org.randomcoder.io.SequenceReader
All Implemented Interfaces:
Closeable, Readable

public class SequenceReader
extends Reader

Chaining Reader implementation.

 Copyright (c) 2006-2007, Craig Condit. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
 
   * Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
   * Redistributions in binary form must reproduce the above copyright notice,
     this list of conditions and the following disclaimer in the documentation
     and/or other materials provided with the distribution.
     
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE.
 


Field Summary
 
Fields inherited from class java.io.Reader
lock
 
Constructor Summary
SequenceReader(List<Reader> readers)
          Creates a new SequenceReader which concatenates the given Reader objects.
SequenceReader(Reader... readers)
          Creates a new SequenceReader which concatenates the given Reader objects.
 
Method Summary
 void close()
          Closes the reader.
 void mark(int readAheadLimit)
          Marks the position in the current stream.
 boolean markSupported()
          Determines if mark is supported.
 int read()
          Reads a single character.
 int read(char[] cbuf)
          Reads characters into a buffer.
 int read(char[] cbuf, int off, int len)
          Reads characters into a buffer.
 int read(CharBuffer target)
          Reads characters into a buffer.
 boolean ready()
          Determines if the underlying stream is ready.
 void reset()
          Resets the stream back to the current mark.
 long skip(long n)
          Skips the specified number of characters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SequenceReader

public SequenceReader(List<Reader> readers)
Creates a new SequenceReader which concatenates the given Reader objects.

Parameters:
readers - List of readers to chain

SequenceReader

public SequenceReader(Reader... readers)
Creates a new SequenceReader which concatenates the given Reader objects.

Parameters:
readers - Array of readers to chain
Method Detail

read

public int read(char[] cbuf,
                int off,
                int len)
         throws IOException
Reads characters into a buffer.

Specified by:
read in class Reader
Parameters:
cbuf - character buffer
off - offset into buffer
len - number of characters to read
Returns:
number of characters read, or -1 on EOF
Throws:
IOException - if an error occurs

read

public int read()
         throws IOException
Reads a single character.

Overrides:
read in class Reader
Returns:
character read or -1 if EOF
Throws:
IOException - if an error occurs

read

public int read(char[] cbuf)
         throws IOException
Reads characters into a buffer.

Overrides:
read in class Reader
Parameters:
cbuf - character buffer
Returns:
number of characters read or -1 on EOF
Throws:
IOException - if an error occurs

read

public int read(CharBuffer target)
         throws IOException
Reads characters into a buffer.

Specified by:
read in interface Readable
Overrides:
read in class Reader
Parameters:
target - character buffer to read into
Returns:
number of characters read or -1 on EOF
Throws:
IOException - if an error occurs

ready

public boolean ready()
              throws IOException
Determines if the underlying stream is ready.

Overrides:
ready in class Reader
Throws:
IOException - if an error occurs return true if ready, false otherwise

skip

public long skip(long n)
          throws IOException
Skips the specified number of characters.

Overrides:
skip in class Reader
Returns:
number of characters actually skipped
Throws:
IOException - if an error occurs

close

public void close()
           throws IOException
Closes the reader.

Specified by:
close in interface Closeable
Specified by:
close in class Reader
Throws:
IOException - if any underlying stream throws an exception

mark

public void mark(int readAheadLimit)
          throws IOException
Marks the position in the current stream.

This implementation does not support marks.

Overrides:
mark in class Reader
Parameters:
readAheadLimit - ignored
Throws:
IOException - always

markSupported

public boolean markSupported()
Determines if mark is supported.

This implementation does not support marks.

Overrides:
markSupported in class Reader
Returns:
false

reset

public void reset()
           throws IOException
Resets the stream back to the current mark.

This implementation does not support reset.

Overrides:
reset in class Reader
Throws:
IOException - always


Copyright © 2006-2010 Craig Condit. All Rights Reserved.