リモート URL からファイルを読み取り、それをバイト配列に保存する、より効率的な方法を見つけようとしています。これが私が現在持っているものです:
private byte[] fetchRemoteFile(String location) throws Exception {
URL url = new URL(location);
InputStream is = null;
byte[] bytes = null;
try {
is = url.openStream ();
bytes = IOUtils.toByteArray(is);
} catch (IOException e) {
//handle errors
}
finally {
if (is != null) is.close();
}
return bytes;
}
ご覧のとおり、私は現在 URL をメソッドに渡しています。メソッドは InputStream オブジェクトを使用してファイルのバイトを読み取ります。この方法では、Apache Commons IOUtils を使用します。ただし、このメソッド呼び出しは、実行に比較的長い時間がかかる傾向があります。数百、数千、または数十万のファイルを次々と取得すると、非常に遅くなります。このメソッドをより効率的に実行できるように改善する方法はありますか? マルチスレッド化を検討しましたが、最後の手段として取っておきたいと思います。