Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

работа с файлами / ЛР№15 - C#, Файлы

.pdf
Скачиваний:
40
Добавлен:
05.02.2016
Размер:
163.55 Кб
Скачать

 

11

Readlnt64

Число со знаком размером 8 байт

 

 

 

ReadUIntl6

Число без знака размером 2

байта

 

 

 

ReadUInt32

Число без знака размером 4

байта

 

 

 

ReadUInt64

Число без знака размером 8

байт

 

 

ReadString

Текстовая строка с префиксом длины

 

 

 

4.2 Работа с текстовыми файлами

Хотя рассмотренные в предыдущем разделе потоки FileStream, BinaryWriter и BinaryReader можно использовать для записи в файлы и чтения из файлов текстовых строк, лучше прменять спе- циально предназначенные для этого средства. Речь идет о потоках классов StreamWriter и StreamReader. Эти потоки чрезвычайно просты в использовании и удобны для работы с текстовыми фай- лами.

Основные приемы использования потоков StreamWriter и StreamReader демонстрируются в программе, исходный текст которой приведен ниже:

using System; using System.IO; namespace TextFile

{

class TextFileApp

{

private const string testFile = "mydata.txt"; static void Main(string[] args)

{

if (File.Exists(testFile))

{

Console.WriteLine("Файл {0} уже существует", testFile); Console.ReadLine();

return;

}

StreamWriter sw = File.CreateText(testFile); sw.WriteLine("Каждый охотник желает знать, где сидит фазан!"); sw.WriteLine("Число \"Пи\" равно примерно {0}.", 3.1415926); sw.Close();

StreamReader sr = File.OpenText(testFile); while (true)

{

String str = sr.ReadLine(); if (str == null)

break; Console.WriteLine(str);

}

sr.Close();

Console.WriteLine("Файл успешно создан"); Console.ReadLine();

}

}

}

12

Программа сразу после запуска проверяет существование рабочего файла в текущем каталоге:

private const string testFile = "mydata.txt"; if (File.Exists(testFile))

{

Console.WriteLine("Файл {0} уже существует", testFile); Console.ReadLine();

return;

}

Если файл с именем mydata.txt существует в текущем каталоге, программа завершает свою работу с сообщением об ошибке. В противном случае программа создает текстовый файл и открыва- ет поток для работы с ним класса StreamWriter:

StreamWriter sw = File.CreateText(testFile);

Как видите, эта операция выполняется методом CreateText, определенным в классе File. Ана- логичного эффекта можно было бы достичь и с помощью следующего конструктора класса StreamWriter:

StreamWriter sw = new StreamWriter(testFile, false);

Первый параметр этого конструктора определяет полный путь к открываемому файлу. Если значение второго параметра равно true, новые данные будут добавлены к файлу, а если false - содер- жимое файла будет перезаписано.

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

После того как поток StreamWriter открыт, программа может записывать в него текстовые строки, пользуясь хорошо известными вам методами Write и WriteLine:

sw.WriteLine("Каждый охотник желает знать, где сидит фазан!"); sw.WriteLine("Число \"Пи\" равно примерно {0}.", 3.1415926);

Когда запись новых данных в поток завершена, необходимо закрыть поток методом Close: sw.Close();

Теперь о чтении данных из текстового файла.

Прежде всего программа должна открыть поток класса StreamReader, привязав его к файлу. Это можно сделать методом File.OpenText:

StreamReader sr = File.OpenText(testFile);

Вы можете также открыть поток и привязать его к файлу с помощью конструктора класса

StreamReader:

StreamReader sr = new StreamReader(testFile);

Далее наша программа считывает текстовые строки из файла, вызывая в цикле метод Read-

Line:

while(true)

13

{

String str = sr.ReadLine();

if(str == null)

break;

Console.WriteLine(str);

}

Этот метод возвращает прочитанную строку или значение null при достижении конца файла. После завершения работы с потоком StreamReader его следует закрыть методом Close:

sr.Close();

Таким образом, наша программа записывает две строки в файл, а затем читает их оттуда и отображает на консоли.

14

5. Задания

1) Записать в текстовый файл результат расчета функции f(y) . Результат должен быть запи- сан в виде двух столбцов аргумента и значения функции от данного аргумента. Начало и конец диапазона, имя файла, а также шаг расчета вводить с клавиатуры.

Вариант Задание

1f(y) = y*y

2f(y) = y*y*y

3f(y) = cos(y)

4f(y) = sin(y)

5f(y) = sin(y)*cos(y)

6f(y) = sin(y)*y

7f(y) = cos(y)*y

8f(y) = sin(y)*cos(y)*y

9f(y) = sin(y)*y*y

10f(y) = cos(y)*y*y

2)Считать файл, вывести на экран среднее арифметическое.

15

6 Контрольные вопросы

16

Литература

1.Аветисян Р. Д., Аветисян Д. В. Теоретические основы информатики. — М.: РГГУ, 1997.

2.Бауэр Ф.Л., Гооз Г. Информатика. Вводный курс: В 2 ч. 4.2: Пер. с нем. — М.: Мир, 1990.

3.Информатика в понятиях и терминах. — М.: Просвещение, 1991.

4.Информатика. Энциклопедический словарь для начинающих. — М.: Педагогика-Пресс, 1994.

5.Основы информатики и вычислительной техники / А. Г. Гейн, В. Г.Житомирский, Е.В.Линецкий и др. — М.: Просвещение, 1991.

6.Веретенникова Е.Г. и др. Информатика: Учебное пособие / Веретенникова Е.Г. и др.; Е. Г. Веретенникова, С. М. Патрушина, Н. Г. Савельева . - Ростов н/Д.: Изд-кий центр "Март", 2002. - 416с.

7.Королев Л. Н. Информатика. Введение в компьютерные науки: Учебник / Л. Н. Королев, А. И. Миков; Л. Н. Королев, А. И. Миков . - М.: Высш. шк., 2003. - 341с.

8.Симонович С. В. Общая информатика: Учебное пособие / С. В. Симонович, Г. А. Евсеев, А. Г. Алексеев. - М.: АСТ- ПРЕСС КНИГА, 2004. - 592с.

9.Информатика. Базовый курс: Под ред. Симановича С. В. - 2-е изд. - СПб.: Питер, 2006. - 640с.

10.Алексеев А. П. Информатика 2007 / А. П. Алексеев. - М.: Солон-Пресс, 2007. - 608с. 2 экз.

11.Степанов А.Н. Информатика: Учебное пособие / А. Н. Степанов. - СПб.: Питер, 2002. - 608с.

12.Острейковский В. А. Информатика: Учебник / В. А. Острейковский. - 3-е изд., стер. - М.: Высшая школа, 2005. - 511с.

13.Конев Ф. Б. Информатика для инженеров: Учебное пособие / Ф. Б. Конев. - М.: Высшая школа, 2004. - 272с.

Соседние файлы в папке работа с файлами