2017-08-03 14 views
0

をダウンロードしようとすると、既存の接続はリモートホストに強制的に切断された私はhttps:// URLからJavaを使用してファイルをダウンロードしようとしていると、それは私にこのエラーを返す保つ:にjava.io.IOException:ファイル

java.io.IOException: An existing connection was forcibly closed by the remote host

ここで

は、私が使用していたコードです:

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); 
    } 

しかし結果は同じでした。 私は何が間違っていますか?

既にチェックされていますが、URLはChromeからアクセス可能であり、ファイルが存在します。

+0

'FileUtils'は何ですか?標準Javaにはそのようなクラスはありません。 –

+0

https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html –

+0

https:\\ URLのようなものはありません。バックスラッシュはURLでは合法ではありません。 – EJP

答えて

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); 
     } 
    } 
関連する問題