Ошибка 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();
}