org.apache.struts.upload
public class BufferedMultipartInputStream extends InputStream
Deprecated: Use the Commons FileUpload based multipart handler instead. This class will be removed after Struts 1.2.
This class implements buffering for an InputStream as well as a readLine method. The purpose of this is to provide a reliable readLine() method.Field Summary | |
---|---|
protected byte[] | buffer
The byte array used to hold buffered data |
protected int | bufferLength
The number of bytes read from the underlying InputStream that are
in the buffer |
protected int | bufferOffset
The current offset we're at in the buffer's byte array |
protected int | bufferSize
The size of the byte array buffer |
protected long | contentLength
The content length of the multipart data |
protected boolean | contentLengthMet
Whether or not bytes up to the Content-Length have been read |
protected InputStream | inputStream
The underlying InputStream used by this class |
protected boolean | maxLengthMet
Whether or not bytes up to the maximum length have been read |
protected long | maxSize
The maximum allowed size for the multipart data, or -1 for an unlimited
maximum file length |
protected int | totalLength
The total number of bytes read so far |
Constructor Summary | |
---|---|
BufferedMultipartInputStream(InputStream inputStream, int bufferSize, long contentLength, long maxSize)
Public constructor for this class, just wraps the InputStream
given |
Method Summary | |
---|---|
int | available()
This method returns the number of available bytes left to read
in the buffer before it has to be refilled |
void | close()
This method attempts to close the underlying InputStream |
boolean | contentLengthMet() |
protected void | fill()
Fills the buffer with data from the underlying inputStream. |
void | mark(int position)
This method calls on the mark() method of the underlying InputStream |
boolean | markSupported()
This method calls on the markSupported() method of the underlying InputStream |
boolean | maxLengthMet() |
int | read()
This method returns the next byte in the buffer, and refills it if necessary. |
int | read(byte[] b)
This method populates the byte array b with data up to
b.length bytes |
int | read(byte[] b, int offset, int length)
This method populates the byte array b with data up to
length starting at b[offset] |
int | readLine(byte[] b, int offset, int length)
This method reads into the byte array b until
a newline ('\n') character is encountered or the number of bytes
specified by length have been read |
byte[] | readLine()
This method reads a line, regardless of length. |
void | reset()
This method makes a call to the reset() method of the underlying
InputStream |
Parameters: inputStream The underlying stream to read from bufferSize The size in bytes of the internal buffer contentLength The content length for this request maxSize The maximum size in bytes that this multipart request can be, or -1 for an unlimited length
Returns: true if the content length has been reached, false otherwise
Returns: Whether or not the underlying InputStream supports marking
Returns: true if the maximum length has been reached, false otherwise
Returns: The next byte read in the buffer, or -1 if the end of the stream has been reached
b
with data up to
b.length
bytesb
with data up to
length
starting at b[offset]b
until
a newline ('\n') character is encountered or the number of bytes
specified by length
have been readReturns: A byte array representing the line.