ВУЗ:
Составители:
Рубрика:
54
Задача 12 (2 способ решения): Из файла удалить слова-полиндромы.
Размышления о решении:
1. Первые шаги размышлений аналогичны первым трем шагам первого
способа решения 12 задачи.
2. Как говорилось в 1 способе решения задачи 12, в 4 пункте, с файлами
можно работать через потоки. В этом способе решения мы ими
воспользуемся.
3. Преимуществом потоков является то, что
там можно проводить
построчное чтение/запись данных. Однако минусом их использования
является то, что их необходимо закрывать (и это действие часто
забывают сделать, что приводит к труднообнаруживаемым ошибкам).
Если их забыть закрыть, то файл «блокируется» для всех других работ.
Однако для преодоления этого минуса в C# существует конструкция
using, которая автоматически закрывает
поток при выходе из нее.
4. Обработка одной строки аналогична обработке одной строки из
первого способа решения. Но псевдоалгоритм обработки файла будет
несколько отличаться.
Открыть первый поток на чтение из входного файла
Открыть второй поток на запись в выходной файл
Создать объект, с помощью которого можно считывать из первого потока
Создать объект, с помощью которого можно записывать во второй поток
Пока Истина
НачалоЦикла
Если файл закончился, то
НачалоЕсли
Прервать цикл.
ОкончаниеЕсли
Считать строку из входного потока
Обработать строку
Записать обработанную строку в выходной поток
ОкончаниеЦикла
Закрыть первый поток
Закрыть второй поток
5. Приведем пример реализации этой процедуры в кодах
public class FileWorker {
public void processFile(string inFileName, string
outFileName) {
//открываем входной файл на чтение
FileStream fin = File.OpenRead(inFileName);
//открываем выходной файл на запись
FileStream fout = File.OpenWrite(outFileName);
//создаем объект, с помощью которого можно считывать из
потока
StreamReader reader = new StreamReader(fin);
Страницы
- « первая
- ‹ предыдущая
- …
- 52
- 53
- 54
- 55
- 56
- …
- следующая ›
- последняя »