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();
}
}