java でどのようにディスクのシーケンシャル読み書きは実現されていますか?
Javaにおいて,RandomAccessFileクラスを用いてディスクへのシーケンシャルな読み書きが可能である。
ステップを順次読み書きすること
- RandomAccessFileオブジェクトを作成し、ファイルをオープンする:
RandomAccessFile file = new RandomAccessFile("文件路径", "模式");
その際、ファイルパスは読み取り書き込みを行うファイルのパスで、モードは “r”(読み込み専用)または “rw”(読み取り書き込み) となります。
- ファイルポインタを位置付ける
file.seek(位置);
そのうち、位置はファイルポインタの位置を表しており、任意の整数値をとることができます。
- データを順番に読み出す:
byte[] buffer = new byte[数据长度];
file.read(buffer);
データ長は読み込むバイト数を表し、バッファは読み取ったデータを格納するバッファ領域です。
- データは順次書き込まれます。
byte[] data = "要写入的数据".getBytes();
file.write(data);
書き込むデータは任意の型で、getBytesメソッドはデータをバイト配列に変換するために使用します。
- ファイルを閉じる
file.close();
ディスクに順序に読み書きする簡単な方法の1つですが、必要に応じてカスタマイズして拡張できます。