我正在尝试将数据文件写入磁盘,以便可以缓存无法放入内存的大量数据。在一些早期测试中,我发现有时我会写入数据,有时则不会。这是一个显示该过程不起作用的示例:
using System.IO;
using System;
namespace TestBinaryWriter
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
double dFoo = 1234.1234;
BinaryWriter bw = new BinaryWriter(File.OpenWrite("asdf"));
bw.Write(dFoo);
bw.Write(BitConverter.GetBytes(dFoo));
}
}
}
文件“asdf”的内容是空的,我不明白为什么。
最佳答案
在using block 中初始化并使用BinaryWriter
:
using (BinaryWriter bw = new BinaryWriter(File.OpenWrite("asdf"))
{
bw.Write(dFoo);
bw.Write(BitConverter.GetBytes(dFoo));
}
您的实现有什么问题是 Stream 没有关闭(通过调用 close 方法)并且内容没有正确地刷新到文件中。
使用using
语句,会自动调用Dispose方法。在 Dispose 实现中,Close 被调用。这就是它的工作原理。
关于c# - BinaryWriter 不写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60408376/