0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 35
|
||||||
1 | ||||||
Недопустимый двоичный формат входного потока16.12.2016, 01:22. Показов 5962. Ответов 7
Метки нет (Все метки)
Всем привет! Возникла такая ошибка: "Недопустимый двоичный формат входного потока."
В чем может быть проблема? Вот код:
0
|
16.12.2016, 01:22 | |
Ответы с готовыми решениями:
7
Очистка входного потока Прочитать все из входного потока Подсчет входного потока Слова входного потока |
Администратор
|
|
16.12.2016, 01:57 | 2 |
Lenster, подозреваю что проблема возникает после вызова метода correct(). Кол-во байтов в новом объекте не обязано совпадать с кол-вом байтов в старом - их может быть как меньше так и больше. В первом случае получатся новые байты плюс хвост от старых. Во втором будут перезаписаны часть байтов следующего объекта. И затем в обоих случаях при попытке чтения мы получим исключение. Нужно а) заменить stringbuilder на char[] фиксированного размера (который никогда нельзя будет менять) или б) читать все объекты которые идут начиная с текущей позиции, делать truncate файла на начальной позиции, сериализовать новый объект и затем объекты которые идут после него или в) придумать другой подход для хранения данных - например обычный архив где имя файла это имя организации.
1
|
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 35
|
||||||
16.12.2016, 11:52 [ТС] | 3 | |||||
Замена stringbuilder на char[] не помогла. Ошибку выдает в строке:
1.Двоичный поток "0" не содержит допустимого двоичного заголовка BinaryHeader. Возможные причины: недопустимый поток или изменение версии объекта между сериализацией и десериализацией. 2.Недопустимый двоичный формат входного потока. Начало содержимого (в байтах): 00-00-0B-00-01-00-00-00-FF-FF-FF-FF-01-00-00-00-00 ... Также жалуется на, видимо, слишком большие значения fs.Length и fs.Position
0
|
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 35
|
||||||
16.12.2016, 18:22 [ТС] | 5 | |||||
Я изменил код, старые ошибки пропали, но появилась новая: Ссылка на объект не указывает на экземпляр объекта.
Как ее решить? Вот мой код:
0
|
0 / 0 / 0
Регистрация: 23.01.2016
Сообщений: 35
|
||||||
17.12.2016, 22:12 [ТС] | 7 | |||||
Ошибка в строке 27:
0
|
Администратор
|
|
17.12.2016, 22:23 | 8 |
Lenster, что я могу сказать - значит переменная b имеет значение null. Думай почему.
0
|
17.12.2016, 22:23 | |
17.12.2016, 22:23 | |
Помогаю со студенческими работами здесь
8
Проверка входного потока на ошибки Работа стандартного входного потока Копирование входного потока в выходной Получение информации из входного потока Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |