料AboutJavaScriptを有効にして、ご利用ください。リトルエンディアン形式のデータを読み書きするメソッドを用意するJavaのデータはビッグエンディアン形式(ネットワークオーダとも呼ばれる)で保存されている。すべてのデータは最上位ビットから最下位ビットに向けてシーケンシャルに並んでいる。以前のJavaでは、リトルエンディアン形式のシステムとの互換性を確保するためには、バイトオーダを反転させる自前のメソッドを定義しなくてはならなかった。ビッグエンディアン形式のマシンとリトルエンディアン形式のマシンが混在するようなネットワーク環境でデータのやり取りを行う場合や、JNIを通じて他のプログラミング言語とやりとりする場合には、バイトオーダに関連した問題を正しく処理することが重要になる。バイトオーダに関する問題を適切に処理しないと、予期せぬプログラムの動作を引き起こしかねない。readDouble)および対応する書き出しメソッドは、ビッグエンディアン形式のデータのみに対応している。C++など他のプログラミング言語とやりとりするのは危険である。これらの言語ではデータのエンディアンネスが決まっていないからだ。以下の違反コードにこのようなエンディアンネスの不一致を示す。参照)、入力値をint型に正しく抽出している。このメソッドは、入力バイトの配列をByteBufferを使ってラップし、バイトオーダーをリトルエンディアン形式に指定し、intデータを抽出している。抽出した結果はint型のserialNumberに格納される。(専用のメソッドを定義する)別の解決法としては、ファイルの読み書き時に必要なバイトオーダ変換を行う専用のメソッドを定義するというやり方がある。メソッドは、バイトバッファに4バイト読み取り、正しい順序に並べて整数に変換している。メソッドは、右シフトした結果をキャストすることで下位バイトを抽出し、書き出すバイトを取得している。値の場合も、8バイトのバイトバッファを用意することで対応できる。メソッドを使用して整数値のバイトオーダを変更することができる。Doubleクラスにはこのメソッドは定義されていないことに注意。Integer.reverseBytes(i);}リスク評価エンディアンを考慮せずにデータの読み書きを行うと、データの符号と絶対値の解釈を誤る恐れがある。L3自動検出このルールの自動検出は一般には難しい。Issues翻訳元これは以下のページを翻訳したものです。有このページは役に立ちましたか?javascriptを有効にすると、ご回答いただけます。その他のご意見はPCサイトにて入力願います。