を参照して、多くのことを助ける私はここに私の答えを入れて良いと思います。 このシナリオでは、java.nio.channels
パッケージのFileChannel
を使用することをお勧めします。 しかし、これは、あなたが良いパフォーマンスを持つ必要がある場合のみ!あなたはRandomAccessFile
経由FileChannel
を取得する必要があるだろう、このように:この後
java.nio.channels.FileChannel channel = new java.io.RandomAccessFile("/my/fyle/path", "rw").getChannel();
、あなたはFileChannel
から読み込まれますByteBuffer
を作成する必要があります。
これは、このようなものになります。
java.nio.ByteBuffer inBuffer = java.nio.ByteBuffer.allocate(100);
int pos = 0;
int aux = 0;
StringBuilder sb = new StringBuilder();
while (pos != -1) {
aux = channel.read(inBuffer, pos);
pos = (aux != -1) ? pos + aux : -1;
b = inBuffer.array();
sb.delete(0, sb.length());
for (int i = 0; i < b.length; ++i) {
sb.append((char)b[i]);
}
//here you can do your stuff on sb
inBuffer = ByteBuffer.allocate(100);
}
は、私の答えはあなたを助けることを願っています!
JavaのRandomAccessFileを使用して、ファイル全体を書き戻さずにファイルを変更できます。私が投稿した以下の詳細情報を参照してください。 – sendon1982