В C # я читаю файл среднего размера (100 КБ ~ 1 МБ), изменяю некоторые части содержимого и, наконец, пишу в другой файл.Все содержимое текстовое.Модификация выполняется как строковые объекты и строковые операции.Мой текущий подход:
- Считайте каждую строку из исходного файла, используя
StreamReader
. - Откройте
StringBuilder
для содержимого нового файла. - Изменить строковый объект и вызвать
AppendLine
из StringBuilder
(до конца файла) - Открыть новый
StreamWriter
и записать StringBuilder
в поток записи.
Однако я обнаружил, что StremWriter.Write
усекает 32768 байт (2 ^ 16), но длина StringBuilder
больше этой.Я мог бы написать простой цикл, чтобы гарантировать всю строку в файл.Но мне интересно, что было бы наиболее эффективным способом в C # для выполнения этой задачи?
Подводя итог, я хотел бы изменить только некоторые части текстового файла и записать в другой файл.Но размер текстового файла может быть больше 32768 байт.
== Ответ == Извините, что запутал вас!Просто я не позвонил flush
.StremWriter.Write
не имеет короткого (например, 2 ^ 16) ограничения.