Javaを使用してインターネットからファイルをダウンロードしようとしていますが、問題があります。私は失敗しませんが、ダウンロードしようとするたびに、ファイルサイズはそれよりも大きいにもかかわらず250-300 KBしかダウンロードされません。私はたくさんの方法を試しましたが、結果が同じだと毎回。Javaを使用してインターネットからファイルをダウンロードできません
私は、私は、のようないくつかの stackoverflowのソリューションをも続いてきた、このようimport java.io.FileOutputStream;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
public class Main {
public static void main(String[] args) {
try {
String from = "https://download.gimp.org/mirror/pub/gimp/v2.8/gimp-2.8.10.tar.bz2";
String to = "/home/ashik/gimp-2.8.10.tar.bz2";
System.out.println("Starting!");
ReadableByteChannel rbc = Channels.newChannel(new URL(from).openStream());
FileOutputStream fos = new FileOutputStream(to);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
System.out.println("Finished!");
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
をのJava NIOを試してみました
import java.io.File;
import java.net.URL;
import org.apache.commons.io.FileUtils;
public class Main {
public static void main(String[] args) {
try {
String from = "https://download.gimp.org/mirror/pub/gimp/v2.8/gimp-2.8.10.tar.bz2";
String to = "/home/ashik/gimp-2.8.10.tar.bz2";
System.out.println("Starting!");
FileUtils.copyURLToFile(new URL(from), new File(to), Integer.MAX_VALUE, Integer.MAX_VALUE);
System.out.println("Finished!");
} catch (Exception e) {
System.err.println(e.toString());
}
}
}
、このようはApache CommonsのIOを試してみました
How to download and save a file from Internet using Java?、How to download large sized Files (size > 50MB) in javaなどですが、いずれも機能していません。
ダウンロードするたびにファイルサイズはわずか250〜300 KBです。この問題を解決するには?
プラットフォーム:
OS:Debianの-9
JDK-バージョン:OracleのJDK-9
IDE:酸素
Eclipseは、事前にありがとうございます。
は、受け入れ答えのコメントの一つは言う:「単一の呼び出しが適切でないtransferFrom()ありえません'が1回の呼び出しで転送全体を完了するように指定されているので、カウントを返します。ループする必要があります。 – NAMS
ああ、次に 'FileUtils.copyURLToFile()'について教えてください。なぜそれは働いていないのですか? – ashik
私はCommons IOに精通していませんが、正しく書かれていると言うことができる限り、何が間違っているのか分かりません。あなたはそれを実行すると例外が発生していますか? – NAMS