Запись в файл произвольного доступа: Буфер выходных байт не достаточен для хранения закодированных данных - C#
Формулировка задачи:
Здравствуйте, ув.форумчане, очень требуется помощ! пытаюсь по примеру с книги сделать программу, пишущую данные в файл, но выдает ошибку. Пожалуйста, помогите.
вот код:
а вот ошибка:
An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll
Additional information: Буфер выходных байт не достаточен для хранения закодированных данных, кодирование 'Unicode (UTF-8)' резерв 'System.Text.EncoderReplacementFallback'.
p.s я только начал изучать работу с файлами, поэтому пока что совсем не понимаю, в чем дело (
static void Main(string[] args)
{
//создать два экземпляра класса byte[] и char[]
byte[] byData;
char[] byChar;
try
{
//создать файл Temp.txt объектом FileStream в текущей директории проекта
//заполнить массив символов byChar данными из входного строкового параметра
//присвоить байтовому массиву размерность равную количеству символов в массиве byChar
//записать из массива byChar в массив byData данные (переведенные из символьного вида в байтовый)
FileStream aFile = new FileStream("Temp.txt", FileMode.Create);
byChar = "Мой дядя - самых честных правил!".ToCharArray();
byData = new byte[byChar.Length];
Encoder e = Encoding.UTF8.GetEncoder();
e.GetBytes(byChar, 0, byChar.Length, byData, 0, true);
//переместить фаайловый указатель в начало файла
aFile.Seek(0, SeekOrigin.Begin);
}
catch(IOException ex)
{
Console.WriteLine("Ошибка!", ex.ToString());
Console.ReadKey();
return;
}
Console.ReadKey();
}Решение задачи: «Запись в файл произвольного доступа: Буфер выходных байт не достаточен для хранения закодированных данных»
textual
Листинг программы
byData = new byte[2 * byChar.Length];