Герберт Шилдт - C# 4.0: полное руководство

Тут можно читать онлайн Герберт Шилдт - C# 4.0: полное руководство - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ООО И.Д. Вильямс, год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# 4.0: полное руководство
  • Автор:
  • Жанр:
  • Издательство:
    ООО И.Д. Вильямс
  • Год:
    2011
  • Город:
    Москва -- Киев
  • ISBN:
    978-5-8459-1684-6
  • Рейтинг:
    3.93/5. Голосов: 141
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Герберт Шилдт - C# 4.0: полное руководство краткое содержание

C# 4.0: полное руководство - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.


Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок

C# 4.0: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

// Продемонстрировать произвольный доступ к файлу.

using System;

using System.IO;

class RandomAccessDemo {

static void Main() {

FileStream f = null;

char ch;

try {

f = new FileStream("random.dat", FileMode.Create);

// Записать английский алфавит в файл,

for (int i=0; i < 26; i++) f.WriteByte((byte)('A'+i));

//А теперь считать отдельные буквы английского алфавита.

f.Seek(0, SeekOrigin.Begin); // найти первый байт

ch = (char) f.ReadByte() ;

Console.WriteLine("Первая буква: " + ch) ;

f.Seek(l, SeekOrigin.Begin); // найти второй байт

ch = (char) f.ReadByte() ;

Console.WriteLine("Вторая буква: " + ch);

f.Seek(4, SeekOrigin.Begin); // найти пятый байт

ch = (char) f.ReadByte() ;

Console.WriteLine("Пятая буква: " + ch) ;

Console.WriteLine() ;

//А теперь прочитать буквы английского алфавита через одну.

Console.WriteLine("Буквы алфавита через одну: ");

for(int i=0; i < 26; i += 2) {

f.Seek(i, SeekOrigin.Begin); // найти i-й символ

ch = (char) f.ReadByte() ;

Console.Write(ch + " ") ;

}

}

catch(IOException exc) {

Console.WriteLine("Ошибка ввода-вывода" + exc.Message);

} finally {

if(f != null) f.Close();

}

Console.WriteLine() ;

}

}

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

Первая буква: А

Вторая буква: В

Пятая буква: Е

Буквы алфавита, через одну:

А С Е G I K M O Q S U W Y

Несмотря на то что метод Seek()имеет немало преимуществ при использовании с файлами, существует и другой способ установки текущего положения в файле с помощью свойства Position. Как следует из табл. 14.2, свойство Positionдоступно как для чтения, так и для записи. Поэтому с его помощью можно получить или же установить текущее положение в файле. В качестве примера ниже приведен фрагмент кода из предыдущей программы записи и чтения из файла с произвольным доступом random.dat, измененный с целью продемонстрировать применение свойства Position.

Console.WriteLine("Буквы алфавита через одну: ");

for(int i=0; i < 26; i += 2) {

f.Position = i; // найти i-й символ посредством свойства Position

ch = (char) f.ReadByte();

Console.Write(ch + " ");

}

Применение класса MemoryStream

Иногда оказывается полезно читать вводимые данные из массива или записывать выводимые данные в массив, а не вводить их непосредственно из устройства или выводить прямо на него. Для этой цели служит класс MemoryStream. Он представляет собой реализацию класса Stream, в которой массив байтов используется для ввода и вывода. В классе MemoryStream определено несколько конструкторов. Ниже представлен один из них:

MemoryStream(byte[] buffer)

где buffer обозначает массив байтов, используемый в качестве источника или адресата в запросах ввода-вывода. Используя этот конструктор, следует иметь в виду, что массив buffer должен быть достаточно большим для хранения направляемых в него данных.

В качестве примера ниже приведена программа, демонстрирующая применение класса MemoryStreamв операциях ввода-вывода.

// Продемонстрировать применение класса MemoryStream.

using System;

using System.IO;

class MemStrDemo {

static void Main() {

byte[] storage = new byte[255];

// Создать запоминающий поток.

MemoryStream memstrm = new MemoryStream(storage);

// чтения и записи данных в потоки.

StreamWriter memwtr = new StreamWriter(memstrm);

StreamReader memrdr = new StreamReader(memstrm);

try {

// Записать данные в память, используя объект memwtr.

for(int i=0; i < 10; i++)

memwtr.WriteLine("byte [" + i + "]: " + i);

// Поставить в конце точку,

memwtr.WriteLine(".");

memwtr.Flush() ;

Console.WriteLine("Чтение прямо из массива storage: ");

// Отобразить содержимое массива storage непосредственно.

foreach(char ch in storage) {

if (ch == '.') break;

Console.Write(ch);

}

Console.WriteLine("\nЧтение из потока с помощью объекта memrdr: ");

// Читать из объекта memstrm средствами

// ввода данных из потока,

memstrm.Seek(0, SeekOrigin.Begin); // -установить указатель файла

// в исходное положение

string str = memrdr.ReadLine();

while(str != null) {

str = memrdr.ReadLine();

if(str[0] == '.') break;

Console.WriteLine(str);

}

} catch(IOException exc) {

Console.WriteLine("Ошибка ввода-вывода" + exc.Message);

} finally {

// Освободить ресурсы считывающего и записывающего потоков,

memwtr.Close();

memrdr.Close() ;

}

}

}

Вот к какому результату приводит выполнение этой программы.

Чтение прямо из массива storage:

byte [0]: 0

byte [1]: 1

byte [2]: 2

byte [3]: 3

byte [4]: 4

byte [5]: 5

byte [6]: 6

byte [7]: 7

byte [8]: 8

byte [9]: 9

Чтение из потока с помощью объекта memrdr:

byte [1]: 1

byte [2]: 2

byte [3]: 3

byte [4]: 4

byte [5]: 5

byte [6]: 6

byte [7]: 7

byte [8]: 8

byte [9]: 9

В этой программе сначала создается массив байтов, называемый storage. Затем этот массив используется в качестве основной памяти для объекта memstrmкласса MemoryStream. Из объекта memstrm, в свою очередь, создаются объекты memrdrкласса StreamReaderи memwtrкласса StreamWriter. С помощью объекта memwtrвыводимые данные записываются в запоминающий поток. Обратите внимание на то, что после записи выводимых данных для объекта memwtr вызывается метод Flush(). Это необходимо для того, чтобы содержимое буфера этого объекта записывалось непосредственно в базовый массив. Далее содержимое базового массива байтов отображается вручную в цикле for each. После этого указатель файла устанавливается с помощью метода Seek()в начало запоминающего потока, из которого затем вводятся данные с помощью объекта потока memrdr.

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

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

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




C# 4.0: полное руководство отзывы


Отзывы читателей о книге C# 4.0: полное руководство, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


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

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