最初の4バイトが特定の値を参照し、次の8がintを参照し、特定のデータ型の32ビットが続くことを示す仕様があります。 Javaでそのようなデータを読み取る最良の方法は何ですか?任意の標準的な方法はありますか私はちょうどあなたが本当にJavaでこれを実行する必要がある場合は、それぞれの位置によって相殺Javaの仕様を使用してバイナリデータをデコードする
0
A
答えて
1
4
あなたの最善の策を行うと移動して、それを読む必要がないことは、単純なDTOを作成することですカスタムのシリアライゼーションを使用します。あなたのプロトコルフォーマットに従ってフィールドを定義し、バイトストリームからそれ自身を読み込ませます。何かのように:
public class ProtocolDTO implements Serializiable {
private int specificValue;
private long anInt;
private int particularDataType;
// Constructors, Accessors
private void readObject(ObjectInputStream in)
throws IOException, ClassNotFoundException {
specificValue = in.readInt();
anInt = in.readLong();
particularDataType = in.readInt();
}
}
このようなプロトコルストリームから直接読み込むときはエンディアンに注意してください。また、あなたの '特定のデータ型'が本当に何であるかに応じて、シリアライズ可能なサブタイプを宣言する必要があるかもしれません。
3
ストリームからプリミティブ型を読み取るには、DataInputStreamを使用して適切な型を順番に読み取ります。
int i1 = stream.readInt();
long l1 = stream.readLong();
http://download.oracle.com/javase/1.4.2/docs/api/java/io/DataInputStream.html
ちょうど規則はすなわちint型は、符号付きまたは符号なしのようにされて、ストリームで使用されているか確認するために世話をします。これは、別の答えで示唆されているように、逆シリアル化メソッドで行うことができます。関連する問題
- 1. Java言語仕様:Javaの8仕様でJava ConditionalExpressionでLambdaExpression
- 2. リアルタイムJava仕様
- 3. システムにインストールされた独自仕様のコーデックを使用してAVIファイルを編集/デコードする
- 4. Java Beanが仕様
- 5. コントローラの仕様と仕様の仕様
- 6. JavaScript:base64をバイナリデータにデコード
- 7. golangを使用したAPI仕様コンバータ
- 8. ASN.1構文仕様に従ってCDRをエンコード/デコード
- 9. JavaのデータベースAPI仕様
- 10. 私は、機能仕様を以下しているJavaの
- 11. Javaを使用してSQL Serverからバイナリデータをエクスポートする
- 12. バイパスJava例外仕様...?
- 13. Java仮想マシン仕様
- 14. マシン仕様を使用してすべてのテストを実行するReSharper
- 15. ジャスミン仕様でmodule.exportsを使用
- 16. 警告仕様として例外仕様laxエラーを処理するClangコンパイラオプション
- 17. Java EE - 誰が仕様を実装していますか?
- 18. rake仕様rails環境を使用していません
- 19. RSpec 2ビュー仕様のassignの使用
- 20. Java:コンピュータ名でコンピュータ仕様を取得
- 21. シェルスクリプトを使用してパッケージ仕様と本体をコンパイルする際の問題
- 22. Capybara javascriptの仕様が多すぎるメモリを使用する
- 23. Java EE 7仕様を使用して、いくつかのフォームデータと共にファイルアップロードを実装する方法は?
- 24. 春データJPA仕様は、私が仕様を持って
- 25. JavaでZXingライブラリを使用してカラー画像をデコードする
- 26. Mavenを使用してspecs2の仕様計画を生成しますか?
- 27. Rails3:Capybaraを使用してステーキ(rspec)仕様のサブドメインにアクセスするには
- 28. Springデータを使用してJPA仕様で投影インターフェイスを取得する
- 29. Minitest仕様で通常のコントローラテストアサーションを使用する方法DSL
- 30. NSpec仕様の再利用