C#应用程序,以将文件传输到FTP服务器。并且下面的函数用于读取jpeg文件。这是不好的功能,因为它会损坏jpeg:
StreamReader sourceStream = new StreamReader("image.jpeg");
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
以下代码可用于文件传输。
fileContents = File.ReadAllBytes(sourceStream.ReadToEnd());
现在我有一个损坏的jpeg库。
如何解决问题?
答案 0 :(得分:1)
您完全不应使用StreamReader
来读取二进制文件,它是TextReader
。除非您的第二段代码是错误的,除非sourceStream
仅包含一个文件名。
您的数据很可能已损坏,无法修复。您可以使用Encoding.UTF8.GetString
和StreamWriter
进行逆运算,但是您的编码很可能已经造成了无法弥补的损害。