当前位置:  开发笔记 > 编程语言 > 正文

使用BinaryWriter时,为什么二进制文件的大小不会减少

如何解决《使用BinaryWriter时,为什么二进制文件的大小不会减少》经验,为你挑选了1个好方法。



1> Jon Skeet..:

这与此无关BinaryWriter- 真的 - 这是File.OpenWrite电话,其文档包括:

OpenWrite如果文件路径已存在,则该方法打开文件,如果不存在,则创建新文件.对于现有文件,它不会将新文本附加到现有文本.相反,它会用新字符覆盖现有字符.如果用较短的字符串(例如"Second run")覆盖较长的字符串(例如"这是对OpenWrite方法的测试"),该文件将包含混合字符串("OpenWrite方法的第二次运行测试" ").

所以你的第二种方法只写了四个字节 - 但是它会覆盖文件的前四个字节,而不会截断文件本身.

File.Create改用,任何现有文件都将被截断.

我还建议您使用using语句而不是手动关闭资源:

using (var writer = new BinaryWriter(File.Create("foo"))
{
    // Code here, no need to call writer.Close()
}

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有