私は現在、ビッグエンディアン形式のデータをすでに持っているJavaByteBufferを持っています。次に、リトルエンディアンとしてバイナリファイルに書き込みます。
まだビッグエンディアンでファイルを書き込むコードは次のとおりです。
public void writeBinFile(String fileName, boolean append) throws FileNotFoundException, IOException
{
FileOutputStream outStream = null;
try
{
outStream = new FileOutputStream(fileName, append);
FileChannel out = outStream.getChannel();
byteBuff.position(byteBuff.capacity());
byteBuff.flip();
byteBuff.order(ByteOrder.LITTLE_ENDIAN);
out.write(byteBuff);
}
finally
{
if (outStream != null)
{
outStream.close();
}
}
}
byteBuffは、ビッグエンディアン形式で入力されたByteBufferであることに注意してください。
私の最後の手段は、別のバッファーを作成し、そのByteBufferをリトルエンディアンに設定してから、元の(ビッグエンディアン)バッファーから「getInt」値を読み取り、値をリトルエンディアンバッファーに「setInt」するブルートフォース方式です。もっと良い方法があると思います...