Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Тут можно читать онлайн Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Вильямс, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс
  • Год:
    2007
  • Город:
    Москва • Санкт-Петербург • Киев
  • ISBN:
    ISBN 5-8459-1124-9
  • Рейтинг:
    3.2/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание краткое содержание

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - описание и краткое содержание, автор Эндрю Троелсен, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML. Книга содержит множество примеров программного кода, призванного помочь читателю в освоении предлагаемого материала. Программный код примеров можно загрузить с Web-сайта издательства.

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать онлайн бесплатно полную версию (весь текст целиком)

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать книгу онлайн бесплатно, автор Эндрю Троелсен
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Предположим, что мы создали новое консольное приложение FileStreamApp. Нашей целью является запись простого текстового сообщения в новый файл с именем myMessage.dat. Но поскольку FileStream может воздействовать только на отдельные байты, требуется перевести тип System.String в соответствующий массив байтов. К счастью, в пространстве имен System.Text определяется тип Encoding, предлагающий члены, которые выполняют кодирование и декодирование строк и массивов байтов (для подробного описания типа Encoding обратитесь к документации .NET Framework 2.0 SDK).

После выполнения кодирования массив байтов переводится в файл с помощью метода FileStream.Write(). Чтобы прочитать байты обратно в память, необходимо переустановить внутренний указатель позиции потока (с помощью свойства Position) и вызвать метод ReadByte(). Наконец, массив байтов и декодированная строка выводятся на консоль. Вот полный текст соответствующего метода Main().

// Не забудьте 'использовать' System.Text.

static void Main(string[] args) {

Console.WriteLine("***** Забавы с FileStreams *****\n");

// Получение объекта FileStream.

FileStream fStream = File.Open(@"C:\myMessage.dat", FileMode.Create);

// Кодирование строки в виде массива байтов.

string msg = "Привет!";

byte[] msgAsByteArray = Encoding.Default.GetBytes(msg);

// Запись byte[] в файл.

fStream.Write(msgAsByteArray, 0, msgAsByteArray.Length);

// Переустановка внутреннего указателя позиции потока.

fStream.Position = 0;

// Чтение типов из файла и вывод на консоль….

Console.Write("Ваше сообщение в виде массива байтов: ");

byte[] bytesFromFile = new byte[msgAsByteArray.Length];

for (int i = 0; i ‹ msgAsByteArray.Length; i++) {

bytesFromFile[i] = (byte)fStream.ReadByte();

Console.Write(bytesFromFile[i]);

}

// Вывод декодированного сообщения.

Console.Write("\nДекодированное сообщение: ");

Console.WriteLine(Encoding.Default.GetString(bytesFromFile));

// Завершение потока.

fStream.Close();

}

Хотя в этом примере файл данными не заполняется, уже здесь становится очевидным главный недостаток работы с типом FileStream: приходится воздействовать непосредственно на отдельные байты. Другие типы, являющиеся производными от Strеаm, работают аналогично. Например, чтобы записать последовательность байтов в заданную область памяти, можно использовать MemoryStream. Точно так же, чтобы передать массив байтов по сети, вы можете использовать тип NetworkStream.

К счастью, пространство имен System.IO предлагает целый ряд типов "чтения" и "записи", инкапсулирующих особенности работы с типами, производными от Stream.

Исходный код. Проект FileStreamApp размещен в подкаталоге, соответствующем главе 16.

Работа с StreamWriter и StreamReader

Классы StreamWriter и StreamReader оказываются полезны тогда, когда приходится читать или записывать символьные данные (например, строки). Оба эти типа по умолчанию работают с символами Unicode, однако вы можете изменить эти установки, предоставив ссылку на правильно сконфигурированный объект System.Text.Encoding. Чтобы упростить рассмотрение, предположим, что предлагаемое по умолчавию кодирование в символы Unicode как раз и является подходящим.

Тип StreamReader получается из абстрактного типа TextReader. To же можно сказать и о родственном типе StringReader (он будет обсуждаться в этой главе позже). Базовый класс TextReader обеспечивает каждому из этих "последователей" очень небольшой набор функциональных возможностей, среди которых, в частности, возможность чтения символов из потока и их добавление в поток.

Тип StreamWriter (как и StringWriter, который также будет рассматриваться позже) получается из абстрактного базового класса TextWriter. Этот класс определяет члены, позволяющие производным типам записывать текстовые данные в имеющийся символьный поток. Взаимосвязь между этими новыми типами ввода-вывода показана на рис. 16.7.

Чтобы помочь вам понять возможности записи классов StreamWriter и StringWriter, в табл. 16.7 предлагаются описания основных членов абстрактного базового класса TextWriter.

Рис 167 Читатели и писатели Таблица 167Основные члены TextWriter Член - фото 201

Рис. 16.7. Читатели и писатели

Таблица 16.7.Основные члены TextWriter

Член Описание
Close() Закрывает записывающий объект и освобождает связанные с ним ресурсы. При этом автоматически очищается буфер
Flush() Очищает все буферы текущего записывающего объекта с тем, чтобы все данные буфера были записаны на соответствующее устройство, но не закрывает сам записывающий объект
NewLine Указывает константу обрыва строки для производного класса записывающего объекта. По умолчанию признаком обрыва строки является возврат каретки с переходом на новую строку (\r\n)
Write() Записывает строку в текстовый поток без добавления константы обрыва строки
WriteLine() Записывает строку в текстовый поток с добавлением константы обрыва строки

Замечание.Последние два из указанных в таблице членов класса TextWriter, вероятно, покажутся вам знакомыми. Если вы помните, у типа System.Console есть члены Write() и WriteLine(), записывающие текстовые данные в устройство стандартного вывода. На самом деле свойство Console.In является упаковкой для TextWriter, а свойство Console.Out – для TextReader.

Производный класс StreamWriter обеспечивает подходящую реализацию методов Write(), Close() и Flush() и определяет дополнительное свойство AutoFlush. Это свойство, когда его значение равно true (истина), заставляет StreamWriter при выполнении операции записи записывать все данные. Можно добиться лучшей производительности, если установить для AutoFlush значение false (ложь), поскольку иначе при каждой записи StreamWriter будет вызываться Close().

Запись в текстовый файл

Рассмотрим пример работал с типом StreamWriter. Следующий класс создает новый файл reminders.txt с помощью метода File.CreateText(). С помощью полученного объекта StreamWriter в новый файл добавляются определенные текстовые данные, как показано ниже.

static void Main(string[] args) {

Console.WriteLine("*** Забавы с StreamWriter/StreamReader ***\n");

// Получение StreamWriter и запись строковых данных.

StreamWriter writer = File.CreateText("reminders.txt");

writer.WriteLine("Нe забыть о дне рождения мамы…");

writer.WriteLine("Не забыть о дне рождения папы…");

writer.WriteLine("Не забыть о следующих числах:");

for(int i = 0; i ‹ 10; i++) writer.Write(i + " ");

// вставка новой строки.

writer.Write(writer.NewLine);

// Закрытие автоматически влечет запись всех оставшихся данных!

writer.Close();

Console.WriteLine("Создан файл и записаны некоторые идеи…");

}

Выполнив эту программу, вы можете проверить содержимое нового файла (рис. 16.8).

Рис 168 Содержимое вашего файла txt Чтение из текстового файла Теперь - фото 202

Рис. 16.8. Содержимое вашего файла * .txt

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Эндрю Троелсен читать все книги автора по порядку

Эндрю Троелсен - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание отзывы


Отзывы читателей о книге ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание, автор: Эндрю Троелсен. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x