私は独自のダウンローダー プログラムを作成しています。現在の機能は次
のとおりです。ダウンロード サイズを取得する
b. プログレスバー
c. ダウンロード時間
d. ダウンロード速度(確かではありません)。
しかし、これらについて明確にする必要があります。
ダウンローダ プログラムは同じロジックを使用してインターネットからファイルをダウンロードしますか? つまり、Java では FileOutputStream と InputStream を使用します。他の人も同じように使っていますか?
現在、私のダウンロード速度推定コードは次のとおりです。
while ((bytesRead = reader.read(buffer)) != -1) { writer.write(buffer, 0, bytesRead); a = (int) (file.length() / 1024); Thread.sleep(1000); csize = (int) (((file.length() / 1024) * 100) / size); progress.setValue(csize); speed.setText("Speed: " + (a - b)+" KB"); remaining.setText("Remaining: "+String.valueOf((size - (file.length() / 2014)))+" KB"); b = a; }
このトピックMeasuring Download Speed Javaを読みましたが、1 秒あたりのダウンロード速度ではなく、合計ダウンロード時間と速度がカウントされます。上記のコードは 1 秒あたりのダウンロード速度を示していますが、それが正しい方法かどうかはわかりません。
また、このフォーラムのどこかで、バッファーを [1024] から [2048] または [4096] に増やすとダウンロード速度が上がると読みましたが、本当ですか? 速度 200kb++ を取得するにはどうすればよいですか? IDMは私のためにこれを行うことができました.
前もって感謝します :)