Ошибка System.ArgumentException: "Поток был недоступен для чтения." - C#
Формулировка задачи:
using System.IO; namespace ConsoleApp5 { class Program { static void Main(string[] args) { double p = 0, i=0; FileStream file1 = new FileStream("C://temp//file1.txt", FileMode.Open); StreamReader s = new StreamReader(file1, Encoding.Default); FileStream file2 = new FileStream("C://temp//file2.txt", FileMode.Create); StreamWriter q = new StreamWriter(file2); while (!s.EndOfStream) { string sk = s.ReadLine(); string[] arr = sk.Split('|'); p += Convert.ToDouble(arr[1]); i++; } double sr = p / i; s.Close(); StreamReader l = new StreamReader(file1, Encoding.Default); //здесь выводить ошибку while (!s.EndOfStream) { string st = s.ReadLine(); string[] array = st.Split('|'); double a = Convert.ToDouble(array[1]); if (a > sr) q.WriteLine(st); }; q.Close(); s.Close(); l.Close(); } } }
Вот текст из file1:
Gelz |5
Nevelson |3
Grimp |3
Brown |4
Harris |5
Lee |2
Lewis |4
Walker |5
Phillips |4
Решение задачи: «Ошибка System.ArgumentException: "Поток был недоступен для чтения."»
textual
Листинг программы
static void Main(string[] args) { double p = 0; int i = 0; StreamReader reader = new StreamReader(@"C:\temp\file1.txt", Encoding.Default); while (!reader.EndOfStream) { string line = reader.ReadLine(); string[] arr = line.Split('|'); p += Convert.ToDouble(arr[1]); i++; } double sr = p / i; reader.Close(); StreamWriter writer = new StreamWriter(@"C:\temp\file2.txt", Encoding.Default); reader = new StreamReader(@"C:\temp\file1.txt", Encoding.Default); while (!reader.EndOfStream) { string line = s.ReadLine(); string[] array = line.Split('|'); double a = Convert.ToDouble(array[1]); if (a > sr) { writer.WriteLine(line); } } reader.Close(); writer.Close(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д