Java中如何使用RestTemplate下载大文件呢?
下文笔者讲述RestTemplate下载大文件的方法分享,如下所示
RestTempate下载大文件的实现思路
使用边读边写模式
及时释放内存,减少服务器压力
例:RestTempate下载大文件的示例
void downLoadBigFile() throws IOException {
// 待下载的文件地址
String url = "http://xxxx";
// 文件保存的本地路径
String targetPath = "D:\\xxx";
//定义请求头的接收类型
RequestCallback requestCallback = request -> request.getHeaders()
.setAccept(Arrays.aslist(MediaType.APPLICATION_OCTET_STREAM, MediaType.ALL));
//对响应进行流式处理而不是将其全部加载到内存中
restTemplate.execute(url, HttpMethod.GET, requestCallback, clientHttpResponse -> {
Files.copy(clientHttpResponse.getBody(), Paths.get(targetPath));
return null;
});
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


