C# 为什么空文本文件包含3个字节?
我在vs2010的C#项目中使用了一个文本文件。我添加到解决方案中,并将其“复制输出”设置为“始终复制”。当我使用以下代码时,它会给出前导三个字节或utf8中一个字节的文本结果。我查看了windows资源管理器的文件属性,它的大小显示为3个字节C# 为什么空文本文件包含3个字节?,c#,.net,file,text,C#,.net,File,Text,我在vs2010的C#项目中使用了一个文本文件。我添加到解决方案中,并将其“复制输出”设置为“始终复制”。当我使用以下代码时,它会给出前导三个字节或utf8中一个字节的文本结果。我查看了windows资源管理器的文件属性,它的大小显示为3个字节 public static string ReadFile(string fileName) { FileStream fs = null; try {
public static string ReadFile(string fileName)
{
FileStream fs = null;
try
{
fs = new FileStream(fileName, FileMode.Open);
FileInfo fi = new FileInfo(fileName);
byte[] data = new byte[fi.Length];
fs.Read(data, 0, data.Length);
fs.Close();
fs.Dispose();
string text = Encoding.ASCII.GetString(data);
return text;
}
catch (Exception)
{
if(fs != null)
{
fs.Close();
fs.Dispose();
}
return string.Empty;
}
}
为什么会这样?没有StreamReader类,如何读取文本文件
如果有任何帮助,代码将非常感谢。因此,您看到的这三个字节就是我猜的unicode文件的字节。对于UTF-8,它是三个字节
您可以通过使用UTF-8(不带签名)保存文件来避免这些问题。问题在于如何创建空文本文件。这就是添加这些字节的原因。我在保存时使用vs2010。