如何从URL下载ZIP文件并仅将它们存储为ZIP文件

3
我有一个像下面这样的url
  http://blah.com/download.zip

我希望有一份Java代码,可以从URL下载ZIP文件并在我的服务器目录中仅保存为ZIP文件。我还想知道最有效的方法是什么。


我正在使用InputStream stream = connection.getInputStream(); 但看起来他犯了一些错误,因为Firefox下载的同一文件显示的数据比我的Java代码显示的要多。 - user882196
1个回答

2

首先,您的URL不是http:\\blah.com\download.zip。正确的URL应该是http://blah.com/download.zip

其次,操作很简单。您需要执行HTTP GET请求,然后获取流并将其复制到FileOutputStream中。以下是代码示例:

URL url = new URL("http://blah.com/download.zip");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
InputStream in = connection.getInputStream();
FileOutputStream out = new FileOutputStream("download.zip");
copy(in, out, 1024);
out.close();


  public static void copy(InputStream input, OutputStream output, int bufferSize) throws IOException {
    byte[] buf = new byte[bufferSize];
    int n = input.read(buf);
    while (n >= 0) {
      output.write(buf, 0, n);
      n = input.read(buf);
    }
    output.flush();
  }

很可能是打错了,bytesRead 应该改成 n - unbeli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接