【问题标题】:File.WriteAllBytes or FileStream.WriteFile.WriteAllBytes 或 FileStream.Write
【发布时间】:2011-07-18 21:48:58
【问题描述】:

File.WriteAllBytes 和 FileStream.Write/WriteBytes 有什么区别?我有一个位图对象,我想在磁盘上创建一个新的 bmp/jpg/png。我想我在某处读到 WriteAllBytes 在下面使用 FileStream.Write?

【问题讨论】:

    标签: c# stream filestream


    【解决方案1】:

    WriteAllBytes 只是一种方便的方法,它包装了底层的Stream 操作。 (创建文件、写入流、关闭流等)。如果它适合您的需求,请使用它。如果您需要对底层操作进行更多控制,请回退到使用 Stream 或类似名称。

    一切都是为了对任务使用正确的抽象。

    【讨论】:

    【解决方案2】:

    使用 WriteAllBytes 只保存所有字节,如果需要查看进度,请使用 Write。

    【讨论】:

      【解决方案3】:

      你在这个错误的轨道上。保存位图对象需要 Image.Save()。这是一种知道如何使用图像编码器将位图转换为另一个程序(或您的程序)可以加载回的字节的方法。有几种图像编码器,您可以使用 Save() 重载选择您想要的一种,让您选择 ImageFormat。 BMP 格式是原生的 Windows 格式,它是未压缩的。 PNG格式很好,它是一种压缩的无损格式。 JPEG 格式是一种压缩的有损格式,适用于照片。文件大小按从大到小的顺序排列。

      【讨论】:

        【解决方案4】:

        如果你想保存位图,你应该使用 WriteAllBytes。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-05-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多