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

时间:2018-06-25 17:30:01

标签: c# binary streamreader

编写了

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

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

以下代码可用于文件传输。

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

现在我有一个损坏的jpeg库。

如何解决问题?

1 个答案:

答案 0 :(得分:1)

您完全不应使用StreamReader来读取二进制文件,它是TextReader。除非您的第二段代码是错误的,除非sourceStream仅包含一个文件名。

您的数据很可能已损坏,无法修复。您可以使用Encoding.UTF8.GetStringStreamWriter进行逆运算,但是您的编码很可能已经造成了无法弥补的损害。