これは、いくつかの変数をバイナリファイルに書き込んでから、それを読み戻すために作成した簡単なプログラムです。
バイナリファイルから文字列を読み取る方法を理解しようとしています。正しく書きました。しかし、私がそれを読み込もうとするたびに(この例では4バイトです)、結果は本当に奇妙になり、すべてが失敗します。b = "jump"ですが、どのように読み取って変換しようとしても、最終結果は奇妙なものになります。そして、その後に読み取られる変数bも奇妙になります。
バイナリファイルから文字列を読み取る適切な方法は何ですか?私の文字列はすべて、とにかく15文字の固定長になります。char配列に変換せずにそれを行う方法はありますか?
また、.ReadCharArrays()メソッドを試し、次にtoString()を試しましたが、まだ正しい変数を読み取っていません。
string path = ".//..//..//..//";
FileStream mfs = new FileStream(path + "test.bin", FileMode.OpenOrCreate, FileAccess.ReadWrite);
BinaryReader br = new BinaryReader(mfs);
BinaryWriter bw = new BinaryWriter(mfs);
short a = 2;
short b = 3;
string c = "JUMP";
bw.Write(a);
bw.Write(c);
bw.Write(b);
Console.WriteLine("Done writing to binary file");
br.BaseStream.Seek(0, SeekOrigin.Begin); //Apprantly you have to seek to beginning
a = br.ReadInt16();
c = br.ReadBytes(4).toString();
b = br.ReadInt16();
Console.WriteLine(""+a);
Console.WriteLine(""+c);
Console.WriteLine("");
Console.WriteLine("" +b);