Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Использование классов System::IO::StreamReader и System::IO::StreamWriter для работы с файлами ⇐ ПредыдущаяСтр 8 из 8
(http://msdn.microsoft.com/ru-ru/library/system.io.streamreader.aspx) (http://msdn.microsoft.com/ru-ru/library/system.io.streamwriter.aspx)
Форматы объявления объектов StreamReader и StreamWriter имеют следующий вид:
StreamReader^ sr = gcnew StreamReader(fileName, [encoding], [detectEncoding], [bufferSize]);
StreamWriter^ sw = gcnew StreamWriter(fileName, [append], [encoding], [bufferSize]); где: fileName – строка, содержащая полное имя файла, связанного с объектом StreamReader; append – определяет, будет ли указанный файл перезаписан (false), либо данные в него будут добавлены (true). Если указанный файл не существует, этот параметр не используется и создается новый файл; encoding – кодировка символов, которую нужно использовать (одно из свойств класса System::Text::Encoding, таблица 11.6); detectEncoding – определяет, необходимо ли осуществлять поиск меток порядка следования байтов в начале файла (true или false). Для обнаружения просматриваются первые три байта потока. Автоматически распознается текст в кодировке UTF-8, Unicode с прямым и обратным порядком следования байтов. В противном случае используется кодировка, определяемая пользователем; bufferSize – значение (Int32, большее 0), определяющее минимальный размер буфера в байтах (задается в 16-разрядных символах). Если заданное значение меньше минимального допустимого размера (128 символов), то используется минимальный допустимый размер.
Таблица 11.16. Основные свойства и методы класса StreamReader
Таблица 11.17. Основные свойства и методы класса StreamWriter
Пример 11.17. Использование объектов StreamWriter и StreamReader соответственно для записи строк в текстовый файл (метод WriteLine), а затем чтения строк из него (метод ReadLine).
#include "stdafx.h" using namespace System; using namespace System::IO; int main() { String^ fname = "c:\\temp\\Test.txt"; // Создание экземпляра класса StreamWriter для записи в файл StreamWriter^ sw = gcnew StreamWriter(fname); // Запись строк в файл for (int i=1; i<5; i++) sw->WriteLine("Test {0}", i); Console::WriteLine("Файл " + fname + " записан."); sw->Close(); // Закрытие файла Console::ReadLine(); // Создание экземпляра класса StreamReader для чтения из файла StreamReader^ sr = gcnew StreamReader(fname); // Чтение и отображение строк из файла, до достижения его конца String^ line = ""; while (line = sr->ReadLine()) Console::WriteLine(line); sr->Close(); // Закрытие файла Console::ReadLine(); return 0; } /* Вывод: Файл c:\temp\Test.txt записан. Test 1 Test 2 Test 3 Test 4 */
В этом примере чтение и отображение строк из файла можно реализовать и иначе, результат при этом не изменится.
while (sr->Peek() > -1) // или while (!sr->EndOfStream) Console::WriteLine(sr->ReadLine()); или while (sr->Peek() >= 0) // или while (!sr->EndOfStream) Console::Write((Char)sr->Read()); или Console::WriteLine(sr->ReadToEnd()); или array<char>^ c = gcnew array<char>(32); sr->Read(c, 0, c->Length); Console::WriteLine(c);
|
||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2018-05-10; просмотров: 255. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |