获取outputstream大小_关于java:如何获取InputStream的大小?
本问题已经有最佳答案,请猛点这里访问。
我有一个InputStream从ProcessBuilder实际读取stdout流。
问题:如何知道该内存InputStream的大小,以便可以将其写入HttpResponse http标头?
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
OutputStream out = response.getOutputStream();
int bytes;
while ((bytes = br.read()) != -1) {
out.write(bytes);
}
//how can I know the size of the inmemory stream/file written?
//response.setContentLength((int) pdfFile.length());
您必须先阅读所有内容,才能知道。 输出可能是无止境的。
您最好将其作为流返回到浏览器。
请参阅此答案:stackoverflow.com/questions/11746978/java-inputstream-size
等待; 是什么告诉您内容完全是文本? 另外,您甚至都没有在阅读器上指定编码(编辑:从注释中看,这似乎不是文本)
只需使用固定大小的缓冲区在循环中进行读取和写入。
@PeterLawrey您可以举一个如何
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
