如何获取 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());

原文由 membersound 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
1 个回答

没有输入流大小这样的东西。考虑一个永不退出的程序,或一个永不停止发送的套接字对等体。而且您不需要知道将其写入 HttpResponse 标头。 Content-length 自动为您管理。

原文由 user207421 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题