Код выбрасывает исключение "Чтение после конца потока невозможно" - 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();
 
 
        }
    }
}

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


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

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

6   голосов , оценка 3.333 из 5
Похожие ответы