代码之家  ›  专栏  ›  技术社区  ›  DaveG

如何使用BinaryWriter写入双值?

  •  -1
  • DaveG  · 技术社区  · 8 年前

    我有两个应用程序需要以快速的方式相互传递值,并且需要保留一些值(当我重新启动计算机时,它仍然存在),因此我需要创建一个文件,现在我知道如何处理 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 回复  |  直到 8 年前
        1
  •  1
  •   TheGeneral    8 年前

    就像

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

    BinaryWriter Class

    Write(Double) 将八字节浮点值写入 当前流并将流位置向前推进8个字节

    至于阅读

    reader.ReadDouble()
    

    BinaryReader.ReadDouble Method ()