【问题标题】:How to use BinaryWriter to write double value?如何使用 BinaryWriter 写入双精度值?
【发布时间】:2018-05-23 05:35:19
【问题描述】:

我有两个应用程序需要快速相互传递值,并且需要保留一些值(当我重新启动计算机时它仍然存在),所以我需要创建一个文件,现在我知道如何与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怎么办?

【问题讨论】:

  • 您可以通过阅读相关文档自己回答这个问题。任何可以以这种方式回答的问题都不应首先在此处提出,因为在此处发布问题之前,您应该始终阅读相关文档。
  • 另外,您读取数据的方式毫无意义。您正在创建一个BinaryReader,甚至没有使用它。阅读文档。

标签: c# arrays byte binarywriter


【解决方案1】:

就这么简单

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

BinaryWriter Class

Write(Double) 将一个 8 字节浮点值写入 当前流并将流位置提前 8 个字节

至于阅读

reader.ReadDouble()

BinaryReader.ReadDouble Method ()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    相关资源
    最近更新 更多