首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用BinaryWriter编写大文件

如何使用BinaryWriter编写大文件
EN

Stack Overflow用户
提问于 2012-07-18 20:59:05
回答 1查看 3.3K关注 0票数 0

我有一些写大二进制文件的程序。我遇到了一个问题:有时我的程序在写入文件时崩溃,而没有抛出任何错误(块catch不执行。我编写了一些测试控制台应用程序来查找和解决此问题。像这样的东西:

代码语言:javascript
复制
static void Main(string[] args)
{
    for (int j = 0; j < 100; j++)
    {
        string fileName = @"D:\Users\nimci\Desktop\buf\"+j+".bin";
        using (var output =
            new BinaryWriter(File.Open(fileName, FileMode.Create, FileAccess.Write)))
        {
            for (int i = 0; i < 4000000; i++)
            {
                output.Write(i);
                //if(i%1000==0)   Thread.Sleep(1);
            }
        }
    }
}

我有这样的结果:一些文件的大小为0。例如,编号为8、10、15、17的文件...

在我的家用电脑(功率较小)上,所有文件都被正确写入,在我的工作电脑上,其中一些文件的大小为0。如果我取消注释Thread.Sleep(1);(或者以其他方式减慢我的程序),所有文件在我的工作计算机上也是正确的,但这样的“修复”在我的服务器计算机上不起作用。有人能解释一下发生了什么错误吗?我该如何修复它?我尝试使用try-cath-finally而不是using,但是catch块没有捕捉到这个错误。

EN

回答 1

Stack Overflow用户

发布于 2012-07-18 21:01:44

尝试添加同花顺:

代码语言:javascript
复制
        for (int i = 0; i < 4000000; i++)         
        {         
            output.Write(i);         
            //if(i%1000==0)   Thread.Sleep(1);         
        }  
        output.Flush(); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11541978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档