File.ReadAllText不会在C#中返回完整内容

时间:2018-07-28 13:36:38

标签: c#

在我的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");

1 个答案:

答案 0 :(得分:3)

您在问题开始时曾说过,您有一个byte[]正在写入文件。目前尚不清楚为什么您决定不使用File.WriteAllBytes,但让我们假设您的代码已将所有数据正确写入名为“ text.txt”的文件中,在注释中对此进行了解释并没有神奇地使它成为文本文件

使用File.ReadAllText无效,因为文件中的数据是二进制数据,而不是文本。从文档的备注中可以看出,它将尝试确定文本文件的编码(由于它包含二进制数据,因此无法正常工作),并且将执行不需要二进制的行尾处理文件。

回读数据的最佳方法是使用File.ReadAllBytes,就像开始时一样,它会给您返回byte[]