2010-12-07 22 views
1

私は整数の巨大なバイナリファイルを読む必要が言う(求めて)バイナリファイルをバッファリングし、便利な方法です整数。今、私はそれは、buffでプロセスデータを解析し、次のブロックを読み取ることができ読み取りが

RandomAccessFile fp=new RandomAccessFile(file); 
fp.seek(position); 
byte[] buff= new byte[len]; 
fp.read(buff, 0, len); 
ByteArrayInputStream bIn = new ByteArrayInputStream(buff); 
DataInputStream dIn= new DataInputStream(bIn); 

: は、これまでのところ私はと自分でバッファの並べ替えを実装しました。

標準的なバッファオブジェクトがあるかどうかは疑問でした。私は自分のコードを単純化し、自分でバッファリングをしないようにしたいと思います。

ヒントをお待ちしております。 ヤコポ

答えて

2

NIOをご覧ください。たとえば、java.nio.MappedByteBufferです。

2

biとdiでラップする前にfi.skip(position)から始めてください。基底のストリームは、実際に位置が十分に大きいときにシークするための呼び出しを実際に行います。

+0

ああ、これはとてもシンプルで効果的です! – jac