Ошибка System.ArgumentException: "Поток был недоступен для чтения." - C#

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

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

Листинг программы
  1. using System.IO;
  2. namespace ConsoleApp5
  3. {
  4. class Program
  5. {
  6. static void Main(string[] args)
  7. {
  8. double p = 0, i=0;
  9. FileStream file1 = new FileStream("C://temp//file1.txt", FileMode.Open);
  10. StreamReader s = new StreamReader(file1, Encoding.Default);
  11. FileStream file2 = new FileStream("C://temp//file2.txt", FileMode.Create);
  12. StreamWriter q = new StreamWriter(file2);
  13. while (!s.EndOfStream)
  14. {
  15. string sk = s.ReadLine();
  16. string[] arr = sk.Split('|');
  17. p += Convert.ToDouble(arr[1]);
  18. i++;
  19. }
  20. double sr = p / i;
  21. s.Close();
  22. StreamReader l = new StreamReader(file1, Encoding.Default); //здесь выводить ошибку
  23. while (!s.EndOfStream)
  24. {
  25. string st = s.ReadLine();
  26. string[] array = st.Split('|');
  27. double a = Convert.ToDouble(array[1]);
  28. if (a > sr)
  29. q.WriteLine(st);
  30. };
  31. q.Close();
  32. s.Close();
  33. l.Close();
  34. }
  35. }
  36. }
Вот текст из file1: Gelz |5 Nevelson |3 Grimp |3 Brown |4 Harris |5 Lee |2 Lewis |4 Walker |5 Phillips |4

Решение задачи: «Ошибка System.ArgumentException: "Поток был недоступен для чтения."»

textual
Листинг программы
  1. static void Main(string[] args)
  2. {
  3.     double p = 0;
  4.     int i = 0;
  5.  
  6.     StreamReader reader = new StreamReader(@"C:\temp\file1.txt", Encoding.Default);
  7.     while (!reader.EndOfStream)
  8.     {
  9.         string line = reader.ReadLine();
  10.         string[] arr = line.Split('|');
  11.         p += Convert.ToDouble(arr[1]);
  12.         i++;
  13.     }
  14.     double sr = p / i;
  15.     reader.Close();
  16.  
  17.     StreamWriter writer = new StreamWriter(@"C:\temp\file2.txt", Encoding.Default);
  18.     reader = new StreamReader(@"C:\temp\file1.txt", Encoding.Default);
  19.     while (!reader.EndOfStream)
  20.     {
  21.         string line = s.ReadLine();
  22.         string[] array = line.Split('|');
  23.         double a = Convert.ToDouble(array[1]);
  24.         if (a > sr)
  25.         {
  26.             writer.WriteLine(line);
  27.         }
  28.     }
  29.     reader.Close();
  30.     writer.Close();
  31. }

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


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

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

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

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

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

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