XXInputStream转ServletInputStream问题
ServletInputStream 是InputStream的子类,ServletInputStream和父类InputStream都是一个抽象方法。在请求当中:request.getInputStream();(request.getInputStream() 方法 源于ServletRequest。)获取到的是个ServletInputStream流对象,所以在处理完ServletInputStream之后需要把InputStram给转换成ServletInputStream对象。
protected ServletInputStream() {
// NOOP
}
public int readLine(byte[] b, int off, int len) throws IOException {
if (len <= 0) {
return 0;
}
int count = 0, c;
while ((c = read()) != -1) {
b[off++] = (byte)c;
count++;
if (c == '\n' || count == len) {
break;
}
}
return count > 0 ? count : -1;
}
把流对象转换成ServletInputStream对象:
final InputStream ins = xxxxx流;
if(ins==null){
return true;
}
this.inputStream = new ServletInputStream() {
public int read() throws IOException {
return ins.read();
}
public void close() throws IOException {
ins.close();
}
};