inputstream 解决只能读取一次

inputstream只能读取一次

如果你需要多次读取

解决方案:

1.客户端一次发送两次请求

表单一次,ajax中再一次

主要是因为 request 请求无法备份一份出来

(对象的赋值是地址赋值)

2.把inputstream流复制下来

实现复制功能的类

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
public class StreamUtils {
    public static byte[] getByteByStream(InputStream is) throws Exception {
        byte[] buffer=new byte[1024];  
        int len=0;  
        ByteArrayOutputStream bos=new ByteArrayOutputStream();  
        while((len=is.read(buffer))!=-1){  
            bos.write(buffer,0,len);  
        }  
        bos.flush();  
        return bos.toByteArray();  
    }
}

利用字节数组保存,需要用到时再转化回去

InputStream stream = new ByteArrayInputStream(StreamUtils.getByteByStream(InputStream));

你可能感兴趣的:(Java)