У меня большой текстовый файл (около 20 тыс. Строк), с помощью которого мне нужно заменить некоторые строки текста в других текстовых файлах (около 60-70 из них).Другие файлы могут называться шаблонами.Строки в этих шаблонах необходимо заменить в зависимости от некоторых условий. Пример содержимого файла:
ISA*00* *00* *01*000123456 *ZZ*PARTNERID~ *090827*0936*U*00401*000000055*0*T*>~
GS*PO*000123456*PARTNERID*20090827*1041*2*X*004010~
ST*850*0003~
BEG*00*SA*1000012**20090827~
REF*SR*N~
CSH*Y~
TD5*****UPSG~
N1*ST*John Doe~
N3*126 Any St*~
N4*Hauppauge*NY*11788-1234*US~
PO1*1*1*EA*19.95**VN*0054321~
CTT*1*1~
SE*11*0003~
GE*1*2~
IEA*1*000000001~
Я загружаю поток файлов из файла содержимого, как показано ниже, и считываю его с помощью потокового считывателя.
FileStream baseFileStream= new FileStream("C:\\Content.txt", FileMode.Open);
Затем мне нужно перебирать файлы шаблона в папке один за другим.После того, как я выберу файл шаблона, я загружу его в другой FileStream (в шаблонах максимум 300 строк).
При чтении файла мне придется много раз возвращаться к предыдущим строкам.Но если я читаю файлы, используя методы ReadToEnd()
или ReadLine()
, возврат к предыдущим строкам будет невозможен.Чтобы преодолеть это, я читаю шаблон в коллекцию строк.Но будет ли хорошей идеей прочитать файл Content в коллекцию, так как он очень большой.В этом файле будет много поиска. Будет ли здесь полезен буферизованный поток?
Или есть ли лучший подход для этого?
Спасибо