Код выбрасывает исключение "Чтение после конца потока невозможно" - C#
Формулировка задачи:
Исключения в строках 52 и 66
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
BinaryWriter BrOut = null;
BinaryReader BrIn = null;
string a;
try
{
BrOut = new BinaryWriter(new FileStream("file.txt", FileMode.Create) );
BrOut.Write("Audi");
BrOut.Write("6000");
BrOut.Write("6");
BrOut.Write("Bmw");
BrOut.Write("8000");
BrOut.Write("8");
BrOut.Write("Mercedes");
BrOut.Write("20000");
BrOut.Write("2");
}
catch (IOException exc)
{
Console.WriteLine(exc.Message);
}
catch (Exception exc)
{
Console.WriteLine(exc.Message+" "+"Что то не так с другим исключением");
}
finally
{
if (BrOut!=null) BrOut.Close();
}
try
{
BrIn = new BinaryReader(new FileStream("file.txt", FileMode.Open));
string request = Console.ReadLine();
Console.WriteLine();
if (!(a=BrIn.ReadString()).Equals(request))
{
do
{
string s= BrIn.ReadString();
int i= BrIn.ReadInt32();
byte b=BrIn.ReadByte();
}
while (BrIn.PeekChar() != -1);
}
else
{
Console.WriteLine("Совпадение найдено" +" "+ a);
}
}
catch (IOException exc)
{
Console.WriteLine(exc);
}
catch (Exception exc)
{
Console.WriteLine(exc.Message);
}
finally
{
BrIn.Close();д
BrOut.Close();
}
Console.ReadKey();
}
}
}Решение задачи: «Код выбрасывает исключение "Чтение после конца потока невозможно"»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
BinaryWriter BrOut = null;
BinaryReader BrIn = null;
string a;
try
{
BrOut = new BinaryWriter(new FileStream("file.txt", FileMode.Create));
BrOut.Write("Audi");
BrOut.Write("6000");
BrOut.Write("6");
BrOut.Write("Bmw");
BrOut.Write("8000");
BrOut.Write("8");
BrOut.Write("Mercedes");
BrOut.Write("20000");
BrOut.Write("2");
}
catch (IOException exc)
{
Console.WriteLine(exc.Message);
}
catch (Exception exc)
{
Console.WriteLine(exc.Message + " " + "Что то не так с другим исключением");
}
finally
{
if (BrOut != null) BrOut.Close();
}
try
{
BrIn = new BinaryReader(new FileStream("file.txt", FileMode.Open));
string request = null;
do
{
Console.WriteLine("Your request: ");
request = Console.ReadLine();
Console.WriteLine("Searching...");
string toFound = null;
bool founded = false;
long position = 0;
BrIn.BaseStream.Position = position;
while (BrIn.BaseStream.Position != BrIn.BaseStream.Length)
{
BrIn.BaseStream.Seek(position, SeekOrigin.Begin);
toFound = Encoding.Unicode.GetString(BrIn.ReadBytes(request.Length * 2));
if (toFound.Equals(request))
{
founded = true;
Console.WriteLine("Founded at index : {0} in file!!!",
BrIn.BaseStream.Position - toFound.Length * 2);
break;
}
position++;
}
if (!founded)
Console.WriteLine("Не найдено такого слова.\n");
} while (request != "end");
}
catch (IOException exc)
{
Console.WriteLine(exc);
}
catch (Exception exc)
{
Console.WriteLine(exc.Message);
}
finally
{
BrIn.Close();
BrOut.Close();
}
Console.ReadKey();
}
}
}