2つのアプリケーションでファイルのハッシュ(Javaで書かれたものとC#で書かれたもの)を生成したことに気付きました。私はWindows XP SP3を使用しています。私は騒音から、ドライブがブロックの束を読んだ後に回転を止め続け、読書の間に数秒の休止を引き起こすことに気づいた。Javaと.NetのDVDからの読み込みが非常に遅い
奇妙なことに、私はエクスプローラを使ってハードドライブにファイルをコピーするときや、md5sum(Cで書かれたユーティリティ)を使うときにこれが起こらないということです。また、 Linuxで同じハードウェアを使用している場合、Javaアプリケーションはうまく動作します。
private static final byte[] m_buf = new byte[1048576*3];
...
//Using a BufferedInputStream makes no difference
InputStream in = new FileInputStream(file);
while((last_read = in.read(m_buf)) != -1){
update_hash(m_buf, 0, last_read);
}
in.close();
ヒント?
ありがとうございました。
あなたは読む方法をいくつか記入できますか? – RvdK
ハッシュ関数を取り除き、ちょうどコピービットを計る。 –
あなたはバッファサイズを増減しようとしましたか? –