Запись в файл произвольного доступа: Буфер выходных байт не достаточен для хранения закодированных данных - 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];
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д