c# 如何撤消 Encoding.UTF8.GetBytes 或转换为 File.ReadAllBytes. 编写了



C#应用程序,以将文件传输到FTP服务器。下面的函数用于读取jpeg文件。这是糟糕的功能,因为它会损坏 jpeg :

StreamReader sourceStream = new StreamReader("image.jpeg");
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());

下面的代码适用于文件传输。

fileContents = File.ReadAllBytes(sourceStream.ReadToEnd());

现在我有损坏的 jpeg 库。

如何解决混乱?

你根本不应该使用StreamReader来读取二进制文件,这是一个TextReader。甚至你的第二段代码也是错误的,除非sourceStream只包含一个文件名。

您的数据很可能已损坏,无法修复。你可以用Encoding.UTF8.GetStringStreamWriter做相反的事情,但你的编码很可能已经造成了无法弥补的损害。

最新更新