获取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您可以举一个如何


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部