Учебно-методический комплекс общее количество часов 58 ч. Лекции 28 ч


Download 2.46 Mb.
bet66/91
Sana19.10.2023
Hajmi2.46 Mb.
#1709453
TuriУчебно-методический комплекс
1   ...   62   63   64   65   66   67   68   69   ...   91
Bog'liq
Язык программирования C#

WriteLine()

Аналогичен Write() только помимо выводимой строки вставляет еще и символы новой строки

ReadLine()

Считывает целую строку символов из потока

Close()

Закрывает поток

Основными реализациями абстрактных классов TextReader и TextWriter являются классы StreamReader и StreamWriter соответственно. Класс StreamReader используется для удобного построкового и посимвольного чтения из потока содержащего текстовые данные. Класс StreamWriter используется для построкового и посимвольного вывода текстовых данных в поток.
Для записи в текстовой файл нужно просто создать объект класса StreamWriter. У этого класса определено несколько конструкторов, два из них употребляются чаще всего.
StreamWriter(Stream) получает в качестве параметра уже созданный поток, этот поток должен быть открыт для записи. Это самый гибкий конструктор.
StreamWriter(String) получает в качестве параметра имя файла. Этот конструктор сам создает поток и при необходимости перезаписывает файл.
Запись в файл осуществляется методами Write() и WriteLine(). Эти методы аналогичны соответствующим методам класса System.Console.

Для чтения из текстового файла используется класс StreamReader. У этого класса также определено несколько конструкторов, но употребляются в основном следующие два.


StreamReader(Stream) получает в качестве параметра уже созданный поток, этот поток должен быть открыт для записи. Это самый гибкий конструктор.
StreamReader(String) получает в качестве параметра имя файла. Этот конструктор сам создает поток и при необходимости перезаписывает файл.
Чтение из файла осуществляется методами Read(), ReadLine() и ReadToEnd().
Метод Read() считывает следующий символ из файла. Метод возвращает int с кодом символа, если чтение завершилось успешно и -1 в противном случае.
Метод ReadLine() считывает все символы, начиная с позиции, на которой находится до символа новой строки. Метод возвращает считанную строку в качестве результата.
Метод ReadToEnd() считывает все символы, начиная с позиции, на которой находится до конца файла. Метод возвращает считанную строку в качестве результата.

Приведем пример программы, создающий файл, записывающей в него 1000 строк текста и затем считывающей все нечетные строки из этого файла.


using System;


using System.IO;

class Program


{
static string FileName = "1000 string.txt";
static string Message = "Строка №";
static int RecordsAmount = 1000;

private static void WriteToFile()


{
FileStream OutputStream= new FileStream(FileName,FileMode.Create,FileAccess.Write);
StreamWriter OutputText = new StreamWriter(OutputStream);
for (int i = 1; i <= RecordsAmount; i++)
OutputText.WriteLine(Message + i);
OutputText.Close();
}

private static void ReadFromFile()


{
FileStream InputStream = new FileStream(FileName, FileMode.Open, FileAccess.Read);
StreamReader InputText = new StreamReader(InputStream);
string Buffer;
for (int i = 1; i <= RecordsAmount; i++)
{
Buffer = InputText.ReadLine();
If (i % 2 == 1)
Console.WriteLine(Buffer);
}
InputText.Close();
}

static void Main(string[] args)


{
WriteToFile();
ReadFromFile();
}
}
Лист. 5.8

После передачи управления методу Main, он вызывает сначала метод WriteToFile(), создающий текстовый файл и записывающей в него RecordsAmount строчек текста, далее вызывается метод ReadFromFile(), считывающий нечетные строки из ранее введенного текста.


Опишем сначала работу метода WriteToFile(). Сначала в этом методе открывается для записи файловый поток – объект OutputStream. Затем он предается конструктору класса StreamWriter, который обворачивает его для удобного строкового вывода в объект OutputText.

FileStream OutputStream = new


FileStream(FileName, FileMode.Create, FileAccess.Write);
StreamWriter OutputText = new StreamWriter(OutputStream);
Лист. 5.9

Далее созданный файл заполняется стоками, содержащими символьное представление чисел от 1 до RecordsAmount включительно и небольшой дополнительный текст. Для этого используется метод WriteLine() класса OutputText.


for (int i = 1; i <= RecordsAmount; i++)


OutputText.WriteLine(Message + i);
OutputText.Close();
Лист. 5.10

Далее текстовый поток необходимо закрыть. При закрытии обворачивающего потока закрывается также и сам обернутый поток.


OutputText.Close();


Лист. 5.11

Опишем теперь работу метода ReadFromFile(). Первым делом он открывает на чтение объект файловый поток InputStream. Затем он предается конструктору класса StreamReader, который заворачивает его для удобства строкового ввода в объект InputText.


FileStream InputStream = new


FileStream(FileName, FileMode.Open, FileAccess.Read);
StreamReader InputText = new StreamReader(InputStream);
Лист. 5.12

Далее в цикле считываются ранее занесенные в файл 1000 string.txt строки. Но выводятся не все строки, а только строки с нечетными номерами.


string Buffer;


for (int i = 1; i <= RecordsAmount; i++)
{
Buffer = InputText.ReadLine();
if (i % 2 == 1)
Console.WriteLine(Buffer);
}
InputText.Close();
Лист. 5.13

Вывод программы состоит из строк следующего вида.


Строка № 1


Строка №"3
…………….

Строка №"999


Вывод. 5.2



Download 2.46 Mb.

Do'stlaringiz bilan baham:
1   ...   62   63   64   65   66   67   68   69   ...   91




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling