java.io.IOException:尝试下载文件时,远程主机强制关闭现有连接

时间:2017-08-03 11:13:38

标签: java exception https download

我正在尝试使用来自https://网址的Java下载文件,并且不断向我返回此错误:

  

java.io.IOException:现有连接被强制关闭   远程主机

以下是我正在使用的代码:

URL website = new URL(fileUrl);
File destinationFile = new File(toPath + returnFileNameFromUrl(fileUrl));
FileUtils.copyURLToFile(website, destinationFile);

我已经尝试过这样做了:

try (InputStream inputStream = website.openStream();
     ReadableByteChannel rbc = Channels.newChannel(inputStream);
     FileOutputStream fileOutputStream = new FileOutputStream(toPath + returnFileNameFromUrl(fileUrl))) {
     fileOutputStream.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
     }

但结果是一样的。 我做错了什么?

我已经检查过,可以从Chrome访问该网址并且文件存在。

1 个答案:

答案 0 :(得分:0)

虽然IO级别较低,但它对我有用而不使用第三方依赖:

    URL fileUrl = new URL("http://link.to/a.file");
    File dest = new File("local.file");
    try(InputStream inputStream = fileUrl.openStream();
        FileOutputStream outputStream = new FileOutputStream(dest)){
      byte[] buffer = new byte[64*1024];
      int readBytes;
      while((readBytes = inputStream.read(buffer, 0, buffer.length))!=-1){
        outputStream.write(buffer, 0, readBytes);
      }
    }