如何获取 InputStream 的大小?

mem*_*und 5 java inputstream content-length

我有一个InputStream来自ProcessBuilderacutally 读取stdout流。

问题:我如何知道 inmemory 的大小InputStream,以便将其写入HttpResponsehttp 标头?

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());
Run Code Online (Sandbox Code Playgroud)

use*_*421 6

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