У меня есть текстовый файл, содержащий несколько «записей» внутри него. Каждая запись содержит имя и набор чисел в качестве данных..NET C# - Случайный доступ в текстовых файлах - нелегкий путь?
Я пытаюсь создать класс, который будет читать файл, представлять только имена всех записей, а затем разрешать пользователю выбирать, какие данные записи он хочет.
В первый раз, когда я просматриваю файл, я читаю только заголовки заголовков, но я могу отслеживать «позицию» в файле, где находится заголовок. Мне нужен произвольный доступ к текстовому файлу, чтобы искать начало каждой записи после того, как пользователь запросит ее.
Мне нужно сделать это так, потому что файл слишком велик, чтобы его можно было полностью считывать в памяти (1 ГБ +) с другими требованиями к памяти приложения.
Я попытался использовать класс .NET StreamReader для выполнения этого (что обеспечивает очень удобную функциональность «ReadLine», но невозможно зафиксировать истинную позицию файла (позиция в свойстве BaseStream искажены из-за буфера класс использует).
есть ли простой способ сделать это в .NET?
Если размер файла превышает 1 ГБ, и вы работаете на 32-битном уровне, вы, вероятно, исчерпаете адресное пространство, даже если Windows поменяет свое маленькое сердце. – 2008-11-05 16:17:42