823.83K
Категория: ПрограммированиеПрограммирование

+++работа с файлами (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.

Пример 1
14

15.

Пример 1
15

16.

Пример 2
16

17.

Пример 2
Файлы 1.txt, 2.txt автоматически будет помещаться в
ту папку, в которой расположен exe-файл.
17

18.

Пример 2
18

19.

Пример 3
С помощью программы Блокнот создать текстовый файл 1.txt,
содержащий русский текст.
Написать приложение, которое из файла 1.txt будет
переписывать в файл 2.txt только те строки, длина которых
больше 11. При переписывании, в начало строки вставить ее
длину, а ASCII – код каждого символа увеличить на 1.
19

20.

Пример 3
Так как файл 1.txt создан в Блокноте в
кодировке Windows-1251 и в нем есть русские
буквы, то используем другой вид конструктора
для создания входного потока. При считывании
будет выполнятся перевод из кодировки
Windows-1251 в кодировку Юникода.
20

21.

Пример 3
21

22.

Задания (из учебника по Паскалю)
1) № 4.9
Написать программу1, создающую
файл 1.txt, содержащий значения х.
Написать программу2, вычисляющую
значения y и выводящую эти
значения в файл 2.txt в виде
таблицы (как в примере).
2) №10.2(2)
22
English     Русский Правила