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(); } };