Java複数の接続のダウンロード
-
19-09-2019 - |
質問
したいと思っていアドバイスとするのにたいして、新しいプロジェクトをスタートの作成javaをダウンロードの加速器利用の複数接続します。知りたかったんですがどう行くことがありますか?
私がこれまで把握できたらいいのに使用HttpUrlConnectionの範囲を有したいと思っていかに効率的な方法を行っています。ましてダウンロードの部品から複数接続し、その手のパーツとし、完全にダウンロードファイルです。
かまいません。:)
解決
- を取得し コンテンツの長さ ファイルのダウンロードしていただけます。
- 分割 itによる基準サイズ-速度...).
- 複数のスレッドファイルをダウンロードから別の位置
保存して異なるファイル:myfile.part1
,myfile.part2
, … - 一度ダウンロード、部品の入 単一のファイル.
また、以下のコードコンテンツを取得する長さ:
public Downloader(String path) throws IOException {
int len = 0;
URL url = new URL(path);
URLConnection connectUrl = url.openConnection();
System.out.println(len = connectUrl.getContentLength());
System.out.println(connectUrl.getContentType());
InputStream input = connectUrl.getInputStream();
int i = len;
int c = 0;
System.out.println("=== Content ===");
while (((c = input.read()) != -1) && (--i > 0)) {
System.out.print((char) c);
}
input.close();
}
こちらのサンプルコードのファイル:
public void join(String FilePath) {
long leninfile=0, leng=0;
int count=1, data=0;
try {
File filename = new File(FilePath);
RandomAccessFile outfile = new RandomAccessFile(filename,"rw");
while(true) {
filename = new File(FilePath + count + ".sp");
if (filename.exists()) {
RandomAccessFile infile = new RandomAccessFile(filename,"r");
data=infile.read();
while(data != -1) {
outfile.write(data);
data=infile.read();
}
leng++;
infile.close();
count++;
} else break;
}
outfile.close();
} catch(Exception e) {
e.printStackTrace();
}
}
他のヒント
いようにしたい場合の接合後のセグメントのダウンロードを使用してくださ FileChannel
.
と FileChannel
, だから書き込みを行うことができま任意の位置でのファイルでも、複数のスレッドで).
ですが初 allocate 全体のファイルとして
書のセグメントが所属している してい.
を参照 Javadocsページ 詳細
JDownloader の私が見た中で最高のダウンローダです。あなたが興味を持っている場合、それはオープンソースだときっとあなたは自分のコードから多くを学ぶことができます。
所属していません StackOverflow