在我的c#程序中,我有一张图像,该图像已成功存储在称为字节的byte[]
数据中。我使用以下代码成功将其写入.txt文件:
using (FileStream file = new FileStream("text.txt", FileMode.Create, FileAccess.Write))
{
file.Write(bytes, 0, numToWrite);
file.Close();
}
上面的代码存储了我想要存储的确切内容。
每当我希望将文件text.txt的内容读入文本框时,我只会得到第一行或第一行的很少部分。但是当我打开文件text.txt时,我看到了完整的内容。
这是我用来读取文件的代码
string kk = File.ReadAllText("text.txt");
答案 0 :(得分:3)
您在问题开始时曾说过,您有一个byte[]
正在写入文件。目前尚不清楚为什么您决定不使用File.WriteAllBytes,但让我们假设您的代码已将所有数据正确写入名为“ text.txt”的文件中,在注释中对此进行了解释并没有神奇地使它成为文本文件
使用File.ReadAllText无效,因为文件中的数据是二进制数据,而不是文本。从文档的备注中可以看出,它将尝试确定文本文件的编码(由于它包含二进制数据,因此无法正常工作),并且将执行不需要二进制的行尾处理文件。
回读数据的最佳方法是使用File.ReadAllBytes,就像开始时一样,它会给您返回byte[]
。