0

C#とAndroidのJavaの間でカスタムデータのバイナリシリアル化/逆シリアル化を行う最も簡単な方法は何ですか?Javaの場合、C#BinaryWriterやBinaryReaderに似たものを見つけたいと思います。これはプリミティブ(uint16など)とUTF-8文字列の書き込みをサポートしています。

それとももっと良い方法がありますか?

編集:データの構造はコンパイル時に不明です

サンプル書き込み:

        BinaryWriter w = new BinaryWriter(File.OpenWrite(@"D:\data"));
        w.Write((UInt16)1234);
        w.Write("To jest żółwiątko");
        w.Write((UInt16)4567);
4

3 に答える 3

0

数日前、私は同じ状況に直面していました。これが私の解決策です。これを試してください(C#コード):

public static void WriteUTF(this BinaryWriter writer, string s)
{
    short length = (short)Encoding.UTF8.GetByteCount(s);
    writer.Write(BitConverter.GetBytes(length).Reverse().ToArray());
    writer.Write(s.ToCharArray());
}
于 2012-03-22T09:01:23.840 に答える
0

これらのライブラリのいずれかがニーズを満たしていますか?:

  • プロトコル バッファ- 「プロトコル バッファは、構造化されたデータを効率的かつ拡張可能な形式でエンコードする方法です。Google は、ほぼすべての内部 RPC プロトコルとファイル形式にプロトコル バッファを使用しています。」

  • Apache Thrift - 「Thrift は、スケーラブルな言語間サービス開発のためのソフトウェア フレームワークです。ソフトウェア スタックとコード生成エンジンを組み合わせて、C++、Java、Python、PHP、Ruby、Erlang、Perl、 Haskell、C#、Cocoa、JavaScript、Node.js、Smalltalk、OCaml."

于 2011-08-29T22:47:59.537 に答える