Как вы указываете, с чего начать чтение в файле при использовании StreamReader?

StackOverflow https://stackoverflow.com/questions/589067

  •  09-09-2019
  •  | 
  •  

Вопрос

Как вы указываете, с чего начать чтение в файле при использовании StreamReader?

Я создал объект streamreader вместе с объектом file stream .После того, как оба объекта будут созданы, как я буду управлять тем, где я хочу, чтобы StreamReader начал чтение из файла?

Допустим, содержимое файла выглядит следующим образом,

// song list.
// junk info.
1. Song Name
2. Song Name
3. Song Name
4. Song Name
5. Song Name
6. Song Name

Как бы я мог управлять программой streamreader для чтения, скажем, из # 2?Кроме того, как я мог бы также контролировать, где заставить его прекратить чтение с помощью аналогичного разделителя, например, в # 5?

Редактировать:Под разделителем я подразумеваю способ заставить StreamReader начать чтение с ('2.')

Это было полезно?

Решение

Вы пытаетесь десериализовать файл в какой-то объект в памяти?Если это так, вы можете просто проанализировать весь файл с помощью ReadLine или что-то подобное, сохраните каждую строку, а затем получите к ней доступ через структуру данных, такую как KeyValuePair<int, string>.

Обновить:ОК...Учитывая новую информацию, я думаю, у вас есть два варианта.Если вы смотрите на чтение до тех пор, пока не найдете совпадение, вы можете Peek(), проверьте, тот ли персонаж, которого вы ищете, а затем Read().В качестве альтернативы, если вы ищете заданную позицию, вы можете просто Read() столько символов и выбрасываем возвращаемое значение.

Если вы ищете сложный разделитель, вы можете прочитать всю строку или даже весь файл целиком в память и использовать Регулярные выражения.

Надеюсь, это поможет...

Другие советы

Если файл содержит новые разделители строк, вы можете использовать Строка чтения читать по строчке за раз.

Итак, чтобы начать чтение со строки № 2, вы должны прочитать первую строку и отбросить, а затем прочитать строки до строки № 5.

Что ж, если содержимое представляет собой просто обычный текст, подобный этому, вам следует использовать метод ReadLine StreamReader.

http://msdn.microsoft.com/en-us/library/system.io.streamreader.readline.aspx

-Ойсин

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top