这是一个简单的程序,我只是尝试将几个变量写入二进制文件,然后将其读回。
我试图弄清楚如何从二进制文件中读取字符串。它写对了。但是每次我尝试读取它(在这个例子中它是 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);