欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

inputstream 解决只能读取一次

程序员文章站 2022-03-10 11:51:37
...

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 Java