XXInputStream转ServletInputStream问题

yzmm
662 阅读
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();
		}
	};

评论 (0)

发表评论