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

Field Summary
 
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()
           
 int read(byte[] b)
           
 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
java.io.IOException

read

public int read()
         throws java.io.IOException
Overrides:
read in class java.io.FilterInputStream
java.io.IOException

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
Overrides:
read in class java.io.FilterInputStream
java.io.IOException


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