Я пишу тестовое приложение для записи текста в текстовый файл с помощью StreamWriter. При выполнении метода WriteLine система резко выключилась. После перезагрузки машины заметил, что в конце файла много символов NUL.
Обыскав множество сайтов, включая MSDN, я не нашел решения этой проблемы.
Может ли кто-нибудь помочь мне решить эту проблему.
Это может быть легко воспроизведено, если мы выполним следующие шаги:
- Создайте WindowsApplication и поместите в него кнопку управления.
В обработчике события нажатия кнопки напишите следующий код:
private void button1_Click (отправитель объекта, EventArgs e)
{ string str = "Welcome to the C Sharp programming world with a test application using IO operations."; StreamWriter sw = new StreamWriter(fileName, true, Encoding.Unicode, str.Length); sw.WriteLine(str); sw.Close(); }
Запустите приложение и непрерывно нажимайте кнопку (Не делайте этого до выключения машины) и нажмите кнопку Poweroff на ПК.
Перезагрузите ПК и проверьте файл, в нем содержится следующий текст:
Добро пожаловать в мир программирования C Sharp с тестовым приложением, использующим операции ввода-вывода.
Добро пожаловать в мир программирования C Sharp с тестовым приложением, использующим операции ввода-вывода.
Добро пожаловать в мир программирования C Sharp с тестовым приложением, использующим операции ввода-вывода.
Добро пожаловать в мир программирования C Sharp с тестовым приложением, использующим операции ввода-вывода.
Добро пожаловать в мир программирования C Sharp с тестовым приложением, использующим операции ввода-вывода.
Добро пожаловать в мир программирования C Sharp с тестовым приложением, использующим операции ввода-вывода.
НУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛНУЛ
Символы NUL появятся в NotePad++, и мы не сможем увидеть эти символы в обычном NotePad.
Заранее спасибо