java通过IO流下载保存文件

我们在开发过程中,可能会遇到需要到远程服务器上下载文件的需求,一般我们的文件可能会有一个url地址,我们拿到这个地址,可以构建URLConnection对象,之后可以根据这个URLConnection来获取InputStream,之后,就可以进行读取并保存文件到本地。

如下所示是一个简单的读取url文件地址,并下载文件到本地conf目录的示例:

java 复制代码
package com.xxx.io;
import org.apache.commons.io.IOUtils;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.nio.file.Files;
public class URLFileCopy {

    private static final String URL_FILE = "http://localhost:8000/lion.jpg";
    public static void main(String[] args) {
        try (OutputStream outputStream = Files.newOutputStream(new File("conf/test.jpg").toPath())) {
            URL url = new URL(URL_FILE);
            URLConnection connection = url.openConnection();
            IOUtils.copy(connection.getInputStream(), outputStream);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

这段代码,读取http://localhost:8000/lion.jpg ,并把文件存为本地conf/test.jpg。运行动态截图:

conf目录开始没有test.jpg文件,运行程序,生成了test.jpg。这里对保存的文件进行了修改名称,在实际中,我们可能需要保留原始的文件名,这里只是测试保存这个动作。这里没有通过构建复杂的io流来先读取,然后写入文件,这里调用了IOUtils.copy()这个方法,这个工具类在commons-io库中,我们的项目一般都会引入这个库,所以可以很方便使用起来。

相关推荐
学传打活4 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
fangzhanpeng16812 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心14 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552720 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552721 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝22 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552722 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552723 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552725 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552725 天前
Java I/O核心操作实战
人工智能·1024程序员节