Исправить ошибки при работе с файлом - C#
Формулировка задачи:
Я хотел, чтобы в файле хранились значения порта и размера буфера, а если файл не создан или неправильно введены данные в файле, то я его перезаписываю. Собственно на деле, у меня во время работы вылетает куча ошибок и файл всегда перезаписывается(вроде как).
Код:
Где бы мне поправить, не меняя общую структуру программы?
Листинг программы
- namespace ConsoleApplication31
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine(MyConsts.BufferSize);
- Console.ReadKey();
- }
- }
- public static class MyConsts
- {
- public static event EventHandler OnChange;
- static MyConsts()
- {
- FileStream fs = new FileStream(ServerSettingsFileName, FileMode.OpenOrCreate);
- fs.Dispose();
- try
- {
- using (StreamReader sr = new StreamReader(ServerSettingsFileName))
- {
- string __port = sr.ReadLine();
- string _bufferSize = sr.ReadLine();
- if (string.IsNullOrEmpty(__port) || string.IsNullOrEmpty(_bufferSize))
- throw new Exception("Can't read settings file");
- Console.WriteLine(Convert.ToInt32(__port));
- Port = Convert.ToInt32(__port);
- BufferSize = Convert.ToInt32(_bufferSize);
- buffer = new byte[BufferSize];
- }
- OnChange += new EventHandler(ReTypeSettingsFile);
- }
- catch (Exception e)
- {
- Console.WriteLine(e);
- Port = 11200;
- OnChange += new EventHandler(ReTypeSettingsFile);
- BufferSize = 1024;
- }
- }
- public const string ServerSettingsFileName = "ServerSettings.txt";
- private static int _port;
- public static int Port
- {
- get { return _port; }
- set
- {
- _port = value;
- OnChange(value, EventArgs.Empty);
- }
- }
- private static int _bufferSize;
- public static int BufferSize
- {
- get { return _bufferSize; }
- set
- {
- MyConsts._bufferSize = value;
- OnChange(value, EventArgs.Empty);
- buffer = new byte[value];
- }
- }
- public static byte[] buffer;
- private static void ReTypeSettingsFile(object sender, EventArgs e) //перезапись файла
- {
- using (StreamWriter sw = new StreamWriter("ServerSettings.txt", false))
- {
- sw.WriteLine(Port);
- sw.WriteLine(BufferSize);
- }
- }
- }
- }
Решение задачи: «Исправить ошибки при работе с файлом»
textual
Листинг программы
- public static event Action OnChange;
- static MyConsts()
- {
- try
- {
- using (StreamReader sr = new StreamReader(ServerSettingsFileName))
- {
- Port = int.Parse(sr.ReadLine());
- BufferSize = int.Parse(sr.ReadLine());
- }
- }
- catch
- {
- Port = 11200;
- BufferSize = 1024;
- }
- OnChange += ReTypeSettingsFile;
- OnChange();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д