私は、すべての整数をファイルに書き込まなければならないJavaプログラムを書いています。より効率的にするために、intを4バイト(バイナリファイルのようなものになると思いますが、わかりません)として書き込み、ファイルから読み戻すときに整数を直接読み取りたいだけです(バイトを読み取ってから整数に変換したくない)。それを行う方法はありますか?
何百万もの整数をファイルに書き込みたいのですが、メソッドを高速かつ効率的にしたいと思っています。
初めてですので、我慢してください。
FileOutputStream fos = new FileOutputStream("numbers.dat");
DataOutputStream dos = new DataOutputStream(fos);
dos.writeInt(my_int);
dos.flush();
dos.close();
データをバッファリングする場合は、次のようにファイルストリームをバッファリングされたストリームにラップします。
FileOutputStream fos = new FileOutputStream("numbers.dat");
BufferedOutputStream bos = new BufferedOutputStream(fos);
dos = new DataOutputStream(bos);
DataOutputStream
クラスまたはを使用しRandomAccessFile
ます。どちらも、構造化されたバイナリデータを書き込むためのメソッドを提供します。たとえば、必要な「intas4bytes」などです。
byte[] bytes = ByteBuffer.allocate(4).putInt(myIntVlaue).array();