org.apache.commons.httpclient
Class ContentLengthInputStream

java.lang.Object
  |
  +--java.io.InputStream
        |
        +--java.io.FilterInputStream
              |
              +--org.apache.commons.httpclient.ContentLengthInputStream

public class ContentLengthInputStream
extends java.io.FilterInputStream

Cuts the wrapped InputStream off after a specified number of bytes.

Since:
2.0
Author:
Ortwin Gl?ck, Eric Johnson, Mike Bowler

Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
ContentLengthInputStream(java.io.InputStream in, int contentLength)
          Creates a new length limited stream
 
Method Summary
 void close()
          Reads until the end of the known length of content.
 int read()
          Read the next byte from the stream
 int read(byte[] b)
          Read more bytes from the stream.
 int read(byte[] b, int off, int len)
          Does standard InputStream.read(byte[], int, int) behavior, but also notifies the watcher when the contents have been consumed.
 
Methods inherited from class java.io.FilterInputStream
available, mark, markSupported, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ContentLengthInputStream

public ContentLengthInputStream(java.io.InputStream in,
                                int contentLength)
Creates a new length limited stream
Parameters:
in - The stream to wrap
contentLength - The maximum number of bytes that can be read from the stream. Subsequent read operations will return -1.
Method Detail

close

public void close()
           throws java.io.IOException

Reads until the end of the known length of content.

Does not close the underlying socket input, but instead leaves it primed to parse the next response.

Overrides:
close in class java.io.FilterInputStream
Throws:
java.io.IOException - If an IO problem occurs.

read

public int read()
         throws java.io.IOException
Read the next byte from the stream
Overrides:
read in class java.io.FilterInputStream
Returns:
The next byte or -1 if the end of stream has been reached.
Throws:
java.io.IOException - If an IO problem occurs
See Also:
InputStream.read()

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
Does standard InputStream.read(byte[], int, int) behavior, but also notifies the watcher when the contents have been consumed.
Overrides:
read in class java.io.FilterInputStream
Parameters:
b - The byte array to fill.
off - Start filling at this position.
len - The number of bytes to attempt to read.
Returns:
The number of bytes read, or -1 if the end of content has been reached.
Throws:
java.io.IOException - Should an error occur on the wrapped stream.

read

public int read(byte[] b)
         throws java.io.IOException
Read more bytes from the stream.
Overrides:
read in class java.io.FilterInputStream
Parameters:
b - The byte array to put the new data in.
Returns:
The number of bytes read into the buffer.
Throws:
java.io.IOException - If an IO problem occurs
See Also:
InputStream.read(byte[])


Copyright © 2001-2004 Apache Software Foundation. All Rights Reserved.