Похожие презентации:
+++работа с файлами (1) (1)
1.
С#1
2.
ТЕМА 2. Структурированные типыданных
Задание 6. «Текстовые файлы»:
1.Потоки. Виды потоков.
2.Символьные потоки.
3.Класс StreamWriter. Создание объекта.
4.Класс StreamWriter метод WriteLine.
5.Класс StreamReader. Создание объекта.
6.Класс StreamReader метод ReadLine.
7.Метод Close.
2
3.
Общие принципы работы с файлами■ Передача данных с внешнего устройства в
оперативную память называется чтением
(вводом), обратный процесс — записью
(выводом).
■ Ввод-вывод в C# выполняется с помощью
подсистемы ввода-вывода и классов
библиотеки .NET. Для работы с классами
этого пространства имен его нужно
обязательно подключить командой:
using System.IO;
■ Обмен данными реализуется с помощью
потоков.
3
4.
Общие принципы работы с файламиПоток это абстракция, которая принимает и
передает данные. С помощью потока можно
читать данные из различных источников
(клавиатура, файл) и записывать в
различные источники (принтер, экран,
файл). Характер поведения всех потоков
одинаков. Поэтому классы и методы
ввода/вывода можно применять к любым
устройствам.
■ Обмен с потоком для повышения скорости
передачи данных производится, как правило,
через буфер. Буфер выделяется для каждого
открытого файла.
■
4
5.
Классы .NET для работы с потоками5
6.
Уровни обмена с внешнимиустройствами
Выполнять обмен с внешними устройствами
можно на уровне:
■ двоичного представления данных
(BinaryReader, BinaryWriter);
■ байтов
(FileStream);
■ текста, то есть символов
(StreamWriter, StreamReader).
6
7.
Доступ к файламДоступ к файлам может быть последовательным,
когда очередной элемент можно прочитать
(записать) только после аналогичной операции с
предыдущим элементом, и прямым, при котором
выполняется чтение (запись) произвольного
элемента по заданному адресу.
■ Текстовые файлы позволяют выполнять только
последовательный доступ, в двоичных и
байтовых потоках можно использовать оба
метода.
■ Прямой доступ в сочетании с отсутствием
преобразований обеспечивает высокую скорость
получения нужной информации.
■
7
8.
Символьные потоки. Класс StreamWriterКласс StreamWriter предназначен для организации
выходного символьного потока. Этот класс
содержит несколько конструкторов.
Так, например, создать экземпляр этого класса
можно так:
StreamWriter f = new StreamWriter("c:\temp\t.txt");
Или, для добавления в конец:
StreamWriter f=new StreamWriter("t.txt", true);
Или, для перезаписи
StreamWriter f=new StreamWriter("t.txt", false);
8
9.
Символьные потоки. Метод WriteLineкласса StreamWriter
Теперь, для записи данных в поток f ,
можно обратиться к методу WriteLine. Это
можно сделать так:
f.WriteLine("test");
В этом случае в файл будет записано (или
дописано) слово test.
9
10.
Символьные потоки. Класс StreamReaderКласс StreamReader предназначен для организации
входного символьного потока.
Так, например, создать экземпляр этого класса можно
так:
StreamReader f = new StreamReader ("c:\temp\t.txt");
В C# символы реализуются кодировкой Unicode. Для
того, чтобы можно было обрабатывать русские буквы в
файле созданном, например, в Блокноте, рекомендуется
следующий конструктор:
StreamReader f = new StreamReader ("c:\temp\t.txt" ,
Encoding.GetEncoding(1251));
Второй параметр говорит о том, что будет выполнено
преобразование из кода Windows-1251 в Unicode.
10
11.
Символьные потоки. Метод ReadLineкласса StreamReader. Конец файла
Теперь, для чтения данных из потока f ,
можно обратиться к методу ReadLine . Это
можно сделать так:
string s=f. ReadLine ();
В этом случае из файла будет прочитана
строка и значение этой строки будет
присвоено переменной s.
Если при чтении будет достигнут конец
файла, то метод ReadLine вернет значение
null.
11
12.
Метод Close()По завершении работы с файлом его необходимо
закрыть методом Close().
12
13.
Пример 1Написать приложение, которое записывает в файл
1.txt значения 8 точек из интервала [-2; 2].
13
14.
Пример 114
15.
Пример 115
16.
Пример 216
17.
Пример 2Файлы 1.txt, 2.txt автоматически будет помещаться в
ту папку, в которой расположен exe-файл.
17
18.
Пример 218
19.
Пример 3С помощью программы Блокнот создать текстовый файл 1.txt,
содержащий русский текст.
Написать приложение, которое из файла 1.txt будет
переписывать в файл 2.txt только те строки, длина которых
больше 11. При переписывании, в начало строки вставить ее
длину, а ASCII – код каждого символа увеличить на 1.
19
20.
Пример 3Так как файл 1.txt создан в Блокноте в
кодировке Windows-1251 и в нем есть русские
буквы, то используем другой вид конструктора
для создания входного потока. При считывании
будет выполнятся перевод из кодировки
Windows-1251 в кодировку Юникода.
20
21.
Пример 321
22.
Задания (из учебника по Паскалю)1) № 4.9
Написать программу1, создающую
файл 1.txt, содержащий значения х.
Написать программу2, вычисляющую
значения y и выводящую эти
значения в файл 2.txt в виде
таблицы (как в примере).
2) №10.2(2)
22