import org.springframework.util.FileCopyUtils;
import org.springframework.util.StringUtils;
import java.io.File;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
public static void main(String[] args) {
// 一张来自网上的图片
String imgUrl = "https://lz.sinaimg.cn/large/008w3CKjgy1h9s0r3vwx0j307i0ait9o.jpg";
// 使用Spring自带的工具类来获取文件名称
String filename = StringUtils.getFilename(imgUrl);
// 通过URL对象创建连接
HttpURLConnection httpUrl = (HttpURLConnection) new URL(imgUrl).openConnection();
httpUrl.connect();
// 读取网络资源的字节对象
InputStream inputStream = httpUrl.getInputStream();
byte[] bytes = inputStream.readAllBytes();
// 保存到本地的文件名称
String localFilePath = "C:\\Users\\XXX\\Desktop\\" + filename;
// ⏹将字节对象写入文件对象中-方式1
File file = new File(localFilePath);
if (!file.exists()) {
FileCopyUtils.copy(bytes, file);
}
// ⏹将字节对象写入文件对象中-方式2
Path path = Paths.get(localFilePath);
/*
StandardOpenOption.CREATE
当文件不存在时,则创建;当文件存在时则覆盖
StandardOpenOption.CREATE_NEW
当文件不存在时,则创建;当文件存在时则抛出异常
*/
Files.write(path, bytes, StandardOpenOption.CREATE);
// 断开连接
httpUrl.disconnect();
}
Java url网络资源转换为byte字节对象并保存
于 2023-01-06 20:23:22 首次发布