|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.io.InputStream | +--org.apache.struts.upload.BufferedMultipartInputStream
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 java.io.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 |
Fields inherited from class java.io.InputStream |
|
Constructor Summary | |
BufferedMultipartInputStream(java.io.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] |
byte[] |
readLine()
This method reads a line, regardless of length. |
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 |
void |
reset()
This method makes a call to the reset() method of the underlying InputStream |
Methods inherited from class java.io.InputStream |
skip |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected java.io.InputStream inputStream
protected byte[] buffer
protected int bufferOffset
protected int bufferSize
protected int bufferLength
protected int totalLength
protected long contentLength
protected long maxSize
protected boolean contentLengthMet
protected boolean maxLengthMet
Constructor Detail |
public BufferedMultipartInputStream(java.io.InputStream inputStream, int bufferSize, long contentLength, long maxSize) throws java.io.IOException
inputStream
- The underlying stream to read frombufferSize
- The size in bytes of the internal buffercontentLength
- The content length for this requestmaxSize
- The maximum size in bytes that this multipart
request can be, or -1 for an unlimited lengthMethod Detail |
public int available()
available
in class java.io.InputStream
public void close() throws java.io.IOException
close
in class java.io.InputStream
java.io.IOException
public void mark(int position)
mark
in class java.io.InputStream
public boolean markSupported()
markSupported
in class java.io.InputStream
public boolean maxLengthMet()
public boolean contentLengthMet()
public int read() throws java.io.IOException
read
in class java.io.InputStream
java.io.IOException
public int read(byte[] b) throws java.io.IOException
b
with data up to
b.length
bytes
read
in class java.io.InputStream
java.io.IOException
public int read(byte[] b, int offset, int length) throws java.io.IOException
b
with data up to
length
starting at b[offset]
read
in class java.io.InputStream
java.io.IOException
public int readLine(byte[] b, int offset, int length) throws java.io.IOException
b
until
a newline ('\n') character is encountered or the number of bytes
specified by length
have been read
java.io.IOException
public byte[] readLine() throws java.io.IOException
java.io.IOException
public void reset() throws java.io.IOException
reset
in class java.io.InputStream
java.io.IOException
protected void fill() throws java.io.IOException
java.io.IOException
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |