Javaのバイト配列でデータをより効率的に分割する方法はありますか? 固定長データフィールドを持つバイナリファイルを読み込むために、次の関数を記述しました。しかしパフォーマンスは非常に遅いので、300バイトの長さを持つ30,000レコードのバイナリファイルを読み込み、各レコードには240フィールドが必要です。 アドバイスはありますか?バイト配列を分割してJavaクラスオブジェクトのフィールドをマップする効率的な方法
public void breakField(byte[] input) {
ByteArrayInputStream bais = new ByteArrayInputStream(input);
byte[] tmp = new byte[2];
bais.read(tmp);
this.id = new String(tmp);
tmp = new byte[4];
bais.read(tmp);
this.name = new String(tmp);
tmp = new byte[8];
bais.read(tmp);
this.phone = new String(tmp);
tmp = new byte[15];
bais.read(tmp);
this.otherInfo = new String(tmp);
.... more fields...
}
フィールド単位ではなくレコード単位(300バイトごと)のファイルを読み取り、読み取ったデータを後でメモリのデータフィールドに分割してみます –