Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 266

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 260 261 262 263 264 265 < 266 > 267 268 269 270 271 272 .. 404 >> Следующая


Объекты StreamReader создаются способом, напоминающим способ создания объектов streamwriter. Наиболее распространенный способ создания таких объектов заключается в использовании заранее созданного объекта Filestream:

Filestream aFile = new Filestream ('Log. txt', FileMode. Open) ¦,

StreamReader sr = new StreamReader (aFile) ;

Я0Ш
| EJe FQrmec
Hello world This is a string of characters. 3 ¦
d
570

Глава 20

Так же, как и класс straamwriter, StreamReader может создаваться непосредственно на основе строки, с которой содержится путь к конкретному файлу:

StreamReader sr = new StreamReader('Log.txt');

Практикум: входной поток

1. Создайте новый проект. Выберите пункт меню C# Console Application И назовите его StreamReaa.

2. В данном случае нам опять потребуется импортировать пространство имен System.ю, поэтому добавьте соответствующую строку

в начало файла classl.cs,

using System; using System.10;

3. Добавьте следующий код в метод Main о:

static void Main(string [ ] args)

{

string strLine; try

, <

Filestream aFile = new yileStream(*Log.txt',FileMode.Open); StreamReader sr * new StreamReader(aFile); strLine = ar.ReadLine();

//Построчное считывание данных while(strLine != null)

(

Console.WriteLine{strLine); strLine ¦ sr.ReadLineO j

)

sr.Close!)j Console•ReadLine();

}

catch(IOException e)

1

Console.WriteLine(*An IC exception has been thrown!*);

Console.WriteLina?e.ToString[));

Console.ReadLine(); return;

)

return;

1 T:\Deviftapmcnt \ffJc)D\5Ue.imRe;id\bill\Dubu9\Slre4n4ReAdcHC

Hello г Id

This i:: ci striny of сКимсЬек'.

4. Создайте В директории StreamReader\bin\Debug файл Log.txt.

Это может быть совершенно новый файл или скопированный регистрационный файл, созданный в предыдущем примере.

Убедитесь, что файл находится в той же директории, что и приложение!

В противном случае приложение завершится неудачей, поскольку конструктор класса Filestream сгенерирует исключительную ситуацию, если ему не удастся обнаружить требуемый файл.

5. Запустите приложение — текст, хранящийся в файле, будет выведен па экран, как показано па рисунке |^|| слева.

В
Работа с файлами

571

Как это работает — Входной поток

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

Для чтения текста из файла использован метод ReadLine*). Этот метод осуществляет считывание текста до того момента, когда будет обнаружен символ “возврат каретки”, и возвращает считанный текст в виде строки. В случае, еслн будет достигнут конец файла, то данный метод возвращает значение null, что используется прн выполнении проверки достижения конца файла:

strLine = ar,ReadLine(); while(atrLine != null)

С

Console.WriteLine(atrLina); strLine - sr.ReadLine();

}

Здесь используется метод Console.LeadLimeneО, чтобы консоль не завершила свою работу, до того как мы успели прочитать выведенную на дисплеи итоговую информацию.

Чтение данных

Метод ReadLine О не является единственным способом доступа к данным в файле. Класс StreamReader имеет несколько способов для чтения данных.

Простейший из них — Reado. Он возвращает следующий символ в виде положительного целого числа или значения -1, еслн достигнут конец. С помощью переводного класса Convert это значение может быть преобразовано в символ. В приведенном выше примере основная часть программы может быть переписана следующим образом:

int nChar; . nChar = sr.Read(); while(nChar !- -1)

(

Console.Write(Convert.ToChar(nChar)); nChar = sr.Read();

)

Удобным методом для чтения небольших файлов является метод ReadToEndd, осуществляющий считывание всего файла целиком и возвращающий его в виде строки. В этом случае приведенное выше приложение упрощается следующим образом:

strLine - sr.ReadToEnd();

Console.WriteLine(strLine);

Хотя такой подход может показаться весьма простым и удобным, при использовании его необходимо соблюдать известную осторожность. Производя считывание всех данных в строковый объект, вы форсируете перевод данных, хранящихся в файле, в память компьютера. В зависимости от размера файла с данными, это может оказаться невыполнимым. Если файл данных достаточно велик, то надежнее будет оставить данные в файле и осуществлять доступ к ним с помощью методов объекта StreninReader, ¦
572

Глава 20

Файлы с ограничителем

Распространенным способом хранения данных в файле является разделение данных запятыми. Мы уже сталкивались с использованием класса StreamWriter для записи файлов с использованием такого подхода. Не менее просто оказывается читать файлы, использующие запятые в качестве разделителя. В класс string включен метод с названием Split о, который используется для преобразования строки в массив с использованием заданного символа в качестве разделителя. Если мы зададим режим использования запятой в качестве разделителя, то это приведет к созданию строкового массива требуемой размерности, в котором будет содержаться вся информация из исходной строки.
Предыдущая << 1 .. 260 261 262 263 264 265 < 266 > 267 268 269 270 271 272 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.