Java `setBufferedSize()`方法做什么?

Java `setBufferedSize()`方法做什么?,java,buffer,httpclient,Java,Buffer,Httpclient,我不知道setBufferSize()方法做什么。有人能解释一下它是干什么的吗?如果我将setBufferSize(4*1024)更改为setBufferSize(5),会发生什么情况?当我这么做的时候,我看不到任何变化!!。有人能解释一下吗? 谢谢 以下是对SetBufferedSize文档的引用,相当完整: 设置响应主体的首选缓冲区大小。这个 servlet容器将使用至少与大小相同的缓冲区 请求。使用的实际缓冲区大小可以使用 getBufferSize 更大的缓冲区允许在写入任何内容之前写入

我不知道
setBufferSize()
方法做什么。有人能解释一下它是干什么的吗?如果我将
setBufferSize(4*1024)
更改为
setBufferSize(5)
,会发生什么情况?当我这么做的时候,我看不到任何变化!!。有人能解释一下吗? 谢谢


以下是对SetBufferedSize文档的引用,相当完整:

设置响应主体的首选缓冲区大小。这个 servlet容器将使用至少与大小相同的缓冲区 请求。使用的实际缓冲区大小可以使用 getBufferSize

更大的缓冲区允许在写入任何内容之前写入更多内容 实际发送,从而为servlet提供更多的设置时间 适当的状态代码和标题。较小的缓冲区会减少 服务器内存加载,并允许客户端开始接收更多数据 快点


这里引用了SetBufferedSize的文档,相当完整:

设置响应主体的首选缓冲区大小。这个 servlet容器将使用至少与大小相同的缓冲区 请求。使用的实际缓冲区大小可以使用 getBufferSize

更大的缓冲区允许在写入任何内容之前写入更多内容 实际发送,从而为servlet提供更多的设置时间 适当的状态代码和标题。较小的缓冲区会减少 服务器内存加载,并允许客户端开始接收更多数据 快点


OP要求org.apache.http.config.ConnectionConfig.Builder.setBufferSize()@guleryuz该方法的apache文档相当糟糕,这就是为什么我选择包含此特殊链接,我可以添加到实际“ConnectionConfig”的链接doc,但这并不能真正帮助OP理解缓冲区大小的意义IMOOP要求org.apache.http.config.ConnectionConfig.Builder.setBufferSize()@guleryuz该方法的apache文档相当糟糕,这就是为什么我选择包含这个特殊的链接,我可以添加到实际“ConnectionConfig”的链接中doc,但这并不能真正帮助OP理解缓冲区大小的意义
public class Test {

    public static void main(String[] args) {
        try {
            String url = "DOWNLOAD_LINK";
            HttpGet request = new HttpGet(url);
            ConnectionConfig connectionConfig = ConnectionConfig.custom()
                    .setBufferSize(4 * 1024).build();

            HttpClientBuilder builder = HttpClientBuilder.create();
            builder.setDefaultConnectionConfig(connectionConfig);

            HttpClient client = builder.build();

            HttpResponse response = client.execute(request);

            HttpEntity entity = response.getEntity();

            InputStream inputStream = entity.getContent();
            int len = 0;
            byte[] buffer = new byte[4098];
            while ((len = inputStream.read(buffer)) != -1) {
                System.out.println("len: " + len);
                //write into file , etc.
            }
            inputStream.close();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (UnsupportedOperationException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }