- PR -

sbyte[]からbyte[]への変換

1
投稿者投稿内容
hiroko
会議室デビュー日: 2003/08/22
投稿数: 19
投稿日時: 2004-01-13 14:42
いつもお世話になっております。
hirokoです。

現在、Javaサーバと.NETクライアントのWebサービスを開発しています。

データのやり取りで、Java側からはsbyte[]を戻り値にとるのですが
クライアント側でそれをファイル出力したいので、
byte[]にして使いたいと思っています。

この場合、どのようにして変換するのでしょうか?
また、byteに変換することで符号が消されてしまうのでしょうか?

簡単なことでしたら申し訳ございませんが
ご存知のかたがいらっしゃいましたらお教えください。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-01-13 17:23
諸農です。

「変換する」の意図が良くわからなかったのですが、
ファイル保存なら、次のようなコードで可能ではないでしょうか。
(コンソールアプリです)

コード:
static void ReadData(string AFileName)
{
    using (FileStream fs = new FileStream(AFileName,FileMode.Open))
    {
        using (BinaryReader br = new BinaryReader(fs))
        {
            fs.Position = 0;
            while (fs.Position < fs.Length)
            {
                sbyte sb = br.ReadSByte();
                Console.Write(sb.ToString() + " ");
            }
            Console.WriteLine();
        }
    }
}

static void WriteData(string AFileName,sbyte[] AData)
{
    using (FileStream fs = new FileStream(AFileName,FileMode.Create))
    {
        using (BinaryWriter bw = new BinaryWriter(fs))
        {
            foreach(sbyte sb in AData)
            {
                bw.Write(sb);
            }
        }
    }
}

[STAThread]
static void Main(string[] args)
{
    string _FileName = System.Environment.GetCommandLineArgs()[0];
    _FileName = Path.ChangeExtension(_FileName,".dat");

    sbyte[] arr16 = new sbyte[10];
    for (int i = 0;i < arr16.Length;i++)
    {
        arr16[i] = (sbyte)(i * -1);
    }

    WriteData(_FileName,arr16);
    ReadData(_FileName);

    Console.ReadLine();
}




_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
1

スキルアップ/キャリアアップ(JOB@IT)