File.WriteAllBytes或FileStream.Write

时间:2011-07-18 21:48:59

标签: c# stream filestream

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

4 个答案:

答案 0 :(得分:16)

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

这就是为任务使用正确的抽象。

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

如果要保存位图,则应使用WriteAllBytes。