File.WriteAllBytes和FileStream.Write / WriteBytes有什么区别?我有一个位图对象,我想在磁盘上创建一个新的bmp / jpg / png。我想我读过WriteAllBytes在下面使用FileStream.Write的地方吗?
答案 0 :(得分:16)
WriteAllBytes
只是一种方便的方法,它包含了基础Stream
操作。 (创建文件,写入流,关闭流等)。如果它符合您的需要,请使用它。如果您需要对基础操作进行更多控制,请回退到使用Stream
或类似操作。
这就是为任务使用正确的抽象。
答案 1 :(得分:3)
使用WriteAllBytes只保存所有字节,如果需要观察进度,请使用Write。
答案 2 :(得分:2)
你这是错误的。保存位图对象需要Image.Save()。这是一种知道如何使用图像编码器将位图转换为另一个程序(或您的程序)可以加载的字节的方法。有几个图像编码器,您可以使用Save()重载选择所需的图像编码器,以便您选择ImageFormat。 BMP格式是本机Windows格式,它是未压缩的。 PNG格式很好,它是一种压缩的无损格式。 JPEG格式是压缩有损格式,适用于照片。文件大小从大到小。
答案 3 :(得分:2)
如果要保存位图,则应使用WriteAllBytes。