Исправить ошибки при работе с файлом - 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();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы