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

C# File.ReadAllText在C中不返回完整内容#,c#,C#,在我的c#程序中,有一个图像成功地存储在一个名为bytes的byte[]数据中。我使用以下代码成功地将其写入.txt文件 using (FileStream file = new FileStream("text.txt", FileMode.Create, FileAccess.Write)) { file.Write(bytes, 0, numToWrite); file.Close(); } 上面的代码存储了我希望存储的确切内容 每当我想将text.txt文件的内容读入文

在我的c#程序中,有一个图像成功地存储在一个名为bytes的
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");

您在问题的开头说您有一个
字节[]
,正在写入文件。不清楚您决定不使用的原因,但让我们假设您的代码正确地将所有数据写入名为“text.txt”的文件中,注释中已经解释了这一点,但这并不能神奇地使其成为文本文件

使用将不起作用,因为文件中的数据是二进制数据,而不是文本。正如您从文档上的备注中所看到的,它将尝试确定文本文件的编码(因为它包含二进制数据而无法工作),并将执行您不希望对二进制文件进行的行尾处理


读回数据的最佳方法是使用,它会返回一个
字节[]
,就像您开始时一样。

numToWrite的值是多少?在第一个代码中,文件扩展名是文本而不是txt。请根据我转换为字节numToWrite=101410的文件发布一个;文件扩展名为。TXT二进制数据不是文本。要解决您的问题,您必须学会承认这些差异。仅仅一个文件有
.txt
扩展名并不意味着它本身就是一个文本文件。您将二进制数据写入一个文件,然后尝试读取它,就好像它是一个文本,它接受某种编码,如UTF-8。那不行。你的想法真的很棒,也帮了我很多忙。我感谢@richardissim不管怎样,我看不出观众有什么理由否决这个话题。这真是让人困惑。否决票的产生有很多原因。在我的经验中,更多的是关于特定问题而不是主题。您最初将此问题标记为,但如果您查看该标记的描述,它会说“仅当您的问题与使用Windows API或与代码相关的Windows特定行为相关时才使用此标记,而不仅仅是因为您碰巧在Windows上运行代码”. 所以我猜,那些擅长这个话题的人,以及那些带着这个标签的监控问题的人,都被这个话题惹恼了,投了反对票。