Есть ли ограничение на количество текста, которое я могу писать / читать с помощью потокового писателя / читателя в C #? - PullRequest
0 голосов
/ 29 августа 2011

Я пытаюсь записать в какой-нибудь текстовый файл, используя потоковую запись. текст, который я пытаюсь написать, взят из другого текстового файла.

Я пытаюсь:

string line = reader.ReadLine(); //reader is a streamReader I defined before
while (line != null)
{
    sw.WriteLine(line); //sw is a streamWriter I defined before
    line = reader.ReadLine();
}

Я тоже пробовал:

while (!(reader.EndOfStream))
{
    sw.WriteLine(reader.ReadLine()); //sw is a streamWriter I defined before
}

этим двум методам удалось скопировать текст из файла в другой файл, но по какой-то причине не весь текст был скопирован. Текстовый файл, из которого я пытаюсь скопировать, очень большой, около 96000 строк, и скопированы только первые 95000 строк.

Поэтому я спрашиваю, есть ли ограничение на количество текста, которое я могу писать / читать с помощью потокового устройства записи / чтения в C #?

Кроме того, я прошу несколько предложений о том, как успешно скопировать весь текст. (Я читал, что есть метод класса Stream, но это для .NET4, так что это не поможет).

РЕДАКТИРОВАНИЕ: Я попытался заменить текст в конце, который не был скопирован, текстом из начала, которое было скопировано. У меня та же проблема, так что это не проблема с персонажами.

Ответы [ 2 ]

3 голосов
/ 29 августа 2011

Хм. Вероятно, вы не очищаете свой поток. Попробуйте сделать sw.Autoflush = true; Или перед закрытием sw вызовите sw.Flush ();

0 голосов
/ 29 августа 2011

Я собираюсь догадаться, что вы не вызываете flush для вашего выходного потока. Это приведет к тому, что последние несколько (иногда много) строк не будут записаны в выходной файл.

...