Почему Пустой текстовый файл содержит 3 байта?
Я использую текстовый файл внутри моего проекта C# в vs2010. Я добавил в решение и установил его " копировать вывод "в" копировать всегда". Когда я использую следующие коды, он дает мне текстовый результат с ведущими тремя байтами или в utf8 один байт. Я посмотрел свойства файла Windows explorers, его размер отображается 3 байта.
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?
любая помощь, коды будут очень оценены.
1 ответов
Итак, эти три байта, которые вы видите, являются маркер порядка байтов для файла unicode я предполагаю. Для UTF-8, это три байта.
вы можете избежать этого, сохранив файл с помощью UTF-8 без подписи.