【问题标题】:How to retrieve integer value from binary file in C#如何在 C# 中从二进制文件中检索整数值
【发布时间】:2014-02-11 13:51:51
【问题描述】:

我在二进制文件中写入整数值如下:-

int val =10;

FileStream fs = new FileStream("BinaryFile.bin", FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs, Encoding.Unicode);

bw.Write(val);

//Reading value from binary as:-

FileStream fs = new FileStream("BinaryFile.bin", FileMode.Open);
  BinaryReader br = new BinaryReader(fs, Encoding.Unicode);

int x = br.ReadInt32();

检索到的值为:1.092616E + 09

我得到的是这个值而不是 '10'

还有其他方法可以获取int值吗?

【问题讨论】:

  • 对我来说很好。你如何显示x
  • 我只是在消息框中显示 x。
  • 当您调试代码并越过ReadInt32 行时会发生什么。x 是否保持10
  • 1) 改用 Encoding.UTF8。 2) 将偏移量显式设置为 0。
  • No x 与它显示的值相同..@Itachi 我应该只使用 Encode.Unicode。有没有其他方法可以使用?

标签: c#


【解决方案1】:

尝试在 BinaryWriter 构造函数中进行更改

作为

 FileStream fs = new FileStream("iram.bin", FileMode.Create);
        // Create the writer for data.
        BinaryWriter w = new BinaryWriter(fs);

w.Write((int) 2000);

w.Close();
fs.Close();

并使用阅读

using (FileStream fs2 = new FileStream("iram.bin", FileMode.Open))
    {
        using(BinaryReader r = new BinaryReader(fs2))
        {
            var integerValue = r.ReadInt32();
        }
    }

更多详情Writing to .bin binary file

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    相关资源
    最近更新 更多