С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
1 / 0 / 1
Регистрация: 29.09.2019
Сообщений: 4
1

Чтение после конца потока невозможно

10.11.2019, 18:41. Показов 1579. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, пишу

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
List<Sound> sound = new List<Sound>();
            using (BinaryReader streem = new BinaryReader(File.Open(path, FileMode.Open)))
            {
                while (streem.PeekChar() > -1)
                {
                    try
                    {
                        string name = streem.ReadString();
                        string path = streem.ReadString();
                        sound.Add(new Sound(name, path));
                    }
                    catch(Exception ex)
                    {
                        sound = null;
                        Console.WriteLine(ex);
                        break;
                    }
                }
            }
Добавлено через 11 минут
Здравствуйте, пишу сохранение плейлиста музыки, но получаю ошибку "Чтение после конца потока не возможно". Есть структура Sound, которая содержит в себе два поля: name и path их и надо сохранять.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
           List<Sound> sound = new List<Sound>(); //создаю лист звуков
            using (BinaryReader streem = new BinaryReader(File.Open(path, FileMode.Open)))
            {
                //чтение из файла
                while (streem.PeekChar() > -1)
                {
                    try
                    {
                        string name = streem.ReadString(); 
                        string path = streem.ReadString();
                        sound.Add(new Sound(name, path));
                    }
                    catch(Exception ex)
                    {
                        sound = null;
                        Console.WriteLine(ex);
                        break;
                    }
                }
            }
Сохранение реализовано так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void Save(List<Sound> sounds)
        {            
            string dataFile = null;
 
            using (BinaryWriter streem = new BinaryWriter(File.Open(path, FileMode.OpenOrCreate)))
            {
                //запись данных в файл
                byte[] bytesString;
                foreach (var i in sounds)
                {
                    dataFile += i.name;
                    dataFile += i.path;
                }
                if (dataFile != null)
                {
                    bytesString = Encoding.Default.GetBytes(dataFile);
                    streem.Write(bytesString, 0, bytesString.Length);
                }
            }
        }
Скажите, в чём проблема? Вроде бы в файл данные записываются корректно, но при чтении возникает ошибка.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2019, 18:41
Ответы с готовыми решениями:

Чтение после конца потока невозможно
Всем привет, есть функция, которая должна выводить данные из data файла, которые были в неё...

Чтение после конца потока невозможно
Ошибку выдаёт в 33й строке :cry: using System; using System.IO; namespace...

Ошибка при чтении файла: Чтение после конца потока невозможно
Всем добрый вечер! Пытаюсь считать данные из rtf файла и загрузить их в excel файл. Но выпадает...

Код выбрасывает исключение "Чтение после конца потока невозможно"
Исключения в строках 52 и 66 using System; using System.Collections.Generic; using System.Linq;...

1
Эксперт .NET
6510 / 4086 / 1606
Регистрация: 09.05.2015
Сообщений: 9,553
10.11.2019, 18:46 2
Лучший ответ Сообщение было отмечено Ыщьвш как решение

Решение

Цитата Сообщение от Ыщьвш Посмотреть сообщение
Сохранение реализовано так
А почему не так
C#
1
2
3
4
5
6
7
8
9
10
11
public void Save(List<Sound> sounds)
        {            
            using (BinaryWriter streem = new BinaryWriter(File.Open(path, FileMode.OpenOrCreate)))
            {
                foreach (var i in sounds)
                {
                    streem.Write(i.name);
                    streem.Write(i.path);
                }
            }
        }
?
1
10.11.2019, 18:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2019, 18:46
Помогаю со студенческими работами здесь

Записать число в начало потока вернувшись с конца потока после записи нескольких элементов...
public static void Save(List&lt;SomeClass&gt; listSC, String fileName) { using...

Ошибка "Чтение после конца потока невозможно" при чтении из файла с помощью BinaryReader
private void ShowFromFile_Click(object sender, EventArgs e) { ...

Чтение чисел из файла. Чтение после конца потока невозможно
Товарищи, помогите. В Pascal'e я не силен, так что не бейте меня ногами, но есть задача: написать...

Чтение после конца потока невозможно
Здравствуйте, упёрся в ошибку по потокам, не могу никак найти решение. Проблема в процедуре...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru