Вот простая программа, которую я сделал, просто пытаясь записать пару переменных в двоичный файл, а затем прочитать его обратно.
Я пытаюсь понять, как читать строку из двоичного файла. Вот правильно написал. Но каждый раз, когда я пытаюсь его прочитать (в этом примере это 4 байта), результат получается очень странным, что сбивает все с толку. b = "jump", но как бы я ни пытался читать и конвертировать, конечный результат получается каким-то странным. И тогда переменная b, которая читается после нее, тоже оказывается странной.
Как правильно прочитать строку из двоичного файла? В любом случае все мои строки будут иметь фиксированную длину, 15 символов. Есть ли способ сделать это без преобразования в массив символов?
Я также попробовал метод .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);