Исправить ошибки при работе с файлом - C#

Узнай цену своей работы

Формулировка задачи:

Я хотел, чтобы в файле хранились значения порта и размера буфера, а если файл не создан или неправильно введены данные в файле, то я его перезаписываю. Собственно на деле, у меня во время работы вылетает куча ошибок и файл всегда перезаписывается(вроде как). Код:
Листинг программы
  1. namespace ConsoleApplication31
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. Console.WriteLine(MyConsts.BufferSize);
  8. Console.ReadKey();
  9. }
  10. }
  11. public static class MyConsts
  12. {
  13. public static event EventHandler OnChange;
  14. static MyConsts()
  15. {
  16. FileStream fs = new FileStream(ServerSettingsFileName, FileMode.OpenOrCreate);
  17. fs.Dispose();
  18. try
  19. {
  20. using (StreamReader sr = new StreamReader(ServerSettingsFileName))
  21. {
  22.  
  23. string __port = sr.ReadLine();
  24. string _bufferSize = sr.ReadLine();
  25. if (string.IsNullOrEmpty(__port) || string.IsNullOrEmpty(_bufferSize))
  26. throw new Exception("Can't read settings file");
  27. Console.WriteLine(Convert.ToInt32(__port));
  28. Port = Convert.ToInt32(__port);
  29. BufferSize = Convert.ToInt32(_bufferSize);
  30. buffer = new byte[BufferSize];
  31. }
  32. OnChange += new EventHandler(ReTypeSettingsFile);
  33. }
  34. catch (Exception e)
  35. {
  36. Console.WriteLine(e);
  37. Port = 11200;
  38. OnChange += new EventHandler(ReTypeSettingsFile);
  39. BufferSize = 1024;
  40. }
  41. }
  42. public const string ServerSettingsFileName = "ServerSettings.txt";
  43. private static int _port;
  44. public static int Port
  45. {
  46. get { return _port; }
  47. set
  48. {
  49. _port = value;
  50. OnChange(value, EventArgs.Empty);
  51. }
  52. }
  53. private static int _bufferSize;
  54. public static int BufferSize
  55. {
  56. get { return _bufferSize; }
  57. set
  58. {
  59. MyConsts._bufferSize = value;
  60. OnChange(value, EventArgs.Empty);
  61. buffer = new byte[value];
  62. }
  63. }
  64. public static byte[] buffer;
  65. private static void ReTypeSettingsFile(object sender, EventArgs e) //перезапись файла
  66. {
  67. using (StreamWriter sw = new StreamWriter("ServerSettings.txt", false))
  68. {
  69. sw.WriteLine(Port);
  70. sw.WriteLine(BufferSize);
  71. }
  72. }
  73. }
  74. }
Где бы мне поправить, не меняя общую структуру программы?

Решение задачи: «Исправить ошибки при работе с файлом»

textual
Листинг программы
  1.         public static event Action OnChange;
  2.  
  3.         static MyConsts()
  4.         {
  5.             try
  6.             {
  7.                 using (StreamReader sr = new StreamReader(ServerSettingsFileName))
  8.                 {
  9.                     Port = int.Parse(sr.ReadLine());
  10.                     BufferSize = int.Parse(sr.ReadLine());
  11.                 }
  12.             }
  13.             catch
  14.             {
  15.                 Port = 11200;
  16.                 BufferSize = 1024;
  17.             }
  18.  
  19.             OnChange += ReTypeSettingsFile;
  20.             OnChange();
  21.         }

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


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

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

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы