java 下载zip文件 添加获取zip通用方法,返回流
时间: 2024-09-18 19:07:27 浏览: 50
在Java中,下载ZIP文件并获取其内容通常需要使用`java.net.URL`和`java.util.zip.ZipInputStream`。下面是一个简单的示例,展示如何从URL下载ZIP文件,并提供一个通用方法返回Zip文件输入流:
```java
import java.io.*;
import java.net.URL;
import java.util.zip.*;
public class ZipDownloader {
public static InputStream downloadZipFromUrl(String urlString) throws IOException {
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
// 设置输入流和输出流,用于读取服务器返回的数据
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream inputStream = connection.getInputStream();
return createZipInputStream(inputStream);
} else {
throw new RuntimeException("Failed to download ZIP file. Response code: " + responseCode);
}
}
private static InputStream createZipInputStream(InputStream source) throws IOException {
byte[] buffer = new byte[4096];
ZipInputStream zipStream = new ZipInputStream(new BufferedInputStream(source));
return zipStream;
}
public static void main(String[] args) {
try {
String url = "http://example.com/file.zip"; // 替换为你需要下载的ZIP文件URL
InputStream zip = downloadZipFromUrl(url);
// 现在你可以通过zip流处理ZIP文件的内容了
// ...
zip.close(); // 关闭流后记得关闭
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,`downloadZipFromUrl`方法首先创建一个HTTP连接到指定的URL,然后从响应中获取输入流。接着,它会创建一个`ZipInputStream`,这个流可以让你逐个读取ZIP文件中的条目。
阅读全文