Хорошо, я читаю в dat-файлах в массив байтов. По какой-то причине люди, которые генерируют эти файлы, помещают в конец файла бесполезные нулевые байты на половину мегабайта. Кто-нибудь знает быстрый способ обрезать их до конца?Удаление конечных нулей из байтового массива в C#
Сначала мысль заключалась в том, чтобы начать в конце массива и прокрутить назад, пока не найду что-то другое, кроме нулевого, а затем скопируйте все до этой точки, но мне интересно, нет ли лучшего способа.
Чтобы ответить на некоторые вопросы: Вы уверены, что 0 байт определенно в файле, а не ошибка в коде чтения файла? Да, я уверен в этом.
Можете ли вы определенно обрезать все задние 0s? Да.
Может ли быть остальная часть 0s в остальной части файла? Да, могут быть 0 других мест, поэтому нет, я не могу начинать с начала и останавливаться при первом 0.
Рассмотрение его как текста кажется рискованным - плюс вы только утроили File IO. – 2008-10-27 15:37:46
О, и значительно увеличить CPU и т. Д. (Требуется время для кодирования/декодирования, даже для ASCII) – 2008-10-27 15:43:40
Кодировка была только для теста ... для записи файла образца. Однако рассмотрение файла в виде текста может быть проблемой. – Rob 2008-10-27 15:49:10