Как использовать BinaryWriter для записи двойного значения? - PullRequest
0 голосов
/ 23 мая 2018

У меня есть два приложения, которым нужно быстро передать значение друг другу, и какое-то значение необходимо сохранить (когда я перезагружаю компьютер, он все еще существует), поэтому мне нужно создать файл, теперь я знаю, какделать с int:

    using (BinaryWriter writer = new BinaryWriter(new FileStream(@"C:\TEST", FileMode.Open)))
    {
        writer.Write(0);  //00 00 00 00
        writer.Write(1);  //01 00 00 00
        writer.Write(2);  //02 00 00 00
        writer.Write(3);  //03 00 00 00 
        writer.Write(int.MaxValue); //FF FF FF 7F
    }

    byte[] test = new byte[4];
    using (BinaryReader reader = new BinaryReader(new FileStream(@"C:\TEST", FileMode.Open)))
    {

        reader.BaseStream.Seek(8, SeekOrigin.Begin);
        reader.Read(test, 0, 4);
        Console.WriteLine(BitConverter.ToInt32(test, 0));     //2

        reader.BaseStream.Seek(16, SeekOrigin.Begin);
        reader.Read(test, 0, 4);
        Console.WriteLine(BitConverter.ToInt32(test, 0));     //2147483647    

        Console.Read();
    }

а как с double?

1 Ответ

0 голосов
/ 23 мая 2018

Это так же просто, как

writer.Write((double)int.MaxValue);

Класс BinaryWriter

Write (Double) Записывает восьмибайтовый плавающийуказывает значение текущего потока и увеличивает позицию потока на восемь байтов

Что касается чтения

reader.ReadDouble()

BinaryReader.ReadDouble Method ()

...