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


Авторские права

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

Здесь можно скачать бесплатно "Герберт Шилдт - C# 4.0: полное руководство" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство ООО "И.Д. Вильямс", год 2011. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Герберт Шилдт - C# 4.0: полное руководство
Рейтинг:
Название:
C# 4.0: полное руководство
Издательство:
ООО "И.Д. Вильямс"
Год:
2011
ISBN:
978-5-8459-1684-6
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "C# 4.0: полное руководство"

Описание и краткое содержание "C# 4.0: полное руководство" читать бесплатно онлайн.



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


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






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


void Flush()


При неудачном исходе данной операции генерируется исключение IOException. Если же поток закрыт, то генерируется исключение ObjectDisposedException.

По завершении вывода в файл следует закрыть его с помощью метода Close(). Этим гарантируется, что любые выведенные данные, оставшиеся в дисковом буфере, будут записаны на диск. В этом случае отпадает необходимость вызывать метод Flush() перед закрытием файла.

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


// Записать данные в файл.

using System;

using System.IO;

class WriteToFile {

  static void Main(string[] args) {

    FileStream fout = null;

    try {

      // Открыть выходной файл.

      fout = new FileStream("test.txt", FileMode.CreateNew);


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

      for(char c = 'А'; c <= 'Z'; c++) fout.WriteByte((byte) c);

    } catch(IOException exc) {

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

    } finally {

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

    }

  }

}


В данной программе сначала создается выходной файл под названием test.txt с помощью перечисляемого значения FileMode.CreateNew. Это означает, что файл с таким же именем не должен уже существовать. (В противном случае генерируется исключение IOException.) После открытия выходного файла в него записываются

прописные буквы английского алфавита. По завершении данной программы содержимое файла test.txt оказывается следующим.


ABCDEFGHIJKLMNOPQRSTUVWXYZ


Использование класса FileStream для копирования файла

Преимущество байтового ввода-вывода средствами класса FileStream заключается, в частности, в том, что его можно применить к файлам практически любого типа, а не только к текстовым файлам. В качестве примера ниже приведена программа, позволяющая копировать файл любого типа, в том числе исполняемый. Имена исходного и выходного файлов указываются в командной строке


/* Копировать файл.

Чтобы воспользоваться этой программой, укажите имена исходного и выходного файлов. Например, для копирования файла FIRST.DAT в файл SECOND.DAT введите в командной строке следующее:

CopyFile FIRST.DAT SECOND.DAT

*/

using System;

using System.IO;

class CopyFile {

  static void Main(string[] args) {

    int i;

    FileStream fin = null;

    FileStream fout = null;


    if (args.Length != 2) {

      Console.WriteLine("Применение: CopyFile Откуда Куда");

      return;

    }

    try {

      // Открыть файлы.

      fin = new FileStream(args[0], FileMode.Open);

      fout = new FileStream(args[1], FileMode.Create);


      // Скопировать файл,

      do {

        i = fin.ReadByte();

        if (i != -1) fout.WriteByte((byte)i);

      } while (i != -1);

    }

    catch (IOException exc) {

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

    }

    finally {

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

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

    }

  }

}


Символьный ввод-вывод в файл

Несмотря на то что файлы часто обрабатываются побайтово, для этой цели можно воспользоваться также символьными потоками. Преимущество символьных потоков заключается в том, что они оперируют символами непосредственно в уникоде. Так, если требуется сохранить текст в уникоде, то для этого лучше всего подойдут именно символьные потоки. В целом, для выполнения операций символьного ввода-вывода в файлы объект класса FileStream заключается в оболочку класса StreamReader или StreamWriter. В этих классах выполняется автоматическое преобразование байтового потока в символьный и наоборот.

Не следует, однако, забывать, что на уровне операционной системы файл представляет собой набор байтов. И применение класса StreamReader или StreamWriter никак не может этого изменить.

Класс StreamWriter является производным от класса ТехtWriteг, а класс StreamReader — производным от класса TextReader. Следовательно, в классах StreamReader и StreamWriter доступны методы и свойства, определенные в их базовых классах.


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

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


StreamWriter(Stream поток)


где поток обозначает имя открытого потока. Этот конструктор генерирует исключение ArgumentException, если поток не открыт для вывода, а также исключение ArgumentNullException, если поток оказывается пустым. После создания объекта класс StreamWriter выполняет автоматическое преобразование символов в байты.

Ниже приведен простой пример сервисной программы ввода с клавиатуры и вывода на диск набранных текстовых строк, сохраняемых в файле test.txt. Набираемый тест вводится до тех пор, пока в нем не встретится строка "стоп". Для символьного вывода в файл в этой программе используется объект класса FileStream, заключенный в оболочку класса StreamWriter.


// Простая сервисная программа ввода с клавиатуры и вывода на диск,

// демонстрирующая применение класса StreamWriter.

using System;

using System.IO;

class KtoD {

  static void Main() {

    string str;

    FileStream fout;


    // Открыть сначала поток файлового ввода-вывода,

    try {

      fout = new FileStream("test.txt", FileMode.Create);

    }

    catch(IOException exc) {

      Console.WriteLine("Ошибка открытия файла:" + exc.Message);

      return ;

    }


    // Заключить поток файлового ввода-вывода

    //в оболочку класса StreamWriter.

    StreamWriter fstr_out = new StreamWriter(fout) ;

    try {

      Console.WriteLine("Введите текст, а по окончании — 'стоп'.");

      do {

        Console.Write (": ");

        str = Console.ReadLine();

        if(str != "стоп") {

          str = str + "\r\n"; // добавить новую строку

          fstr_out.Write(str);

        }

      } while(str != "стоп");

    } catch(IOException exc) {

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

    } finally {

      fstr_out.Close();

    }

  }

}


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


StreamWriter(string путь)

StreamWriter(string путь, bool append)


где путь — это имя открываемого файла, включая полный путь к нему. Если во второй форме этого конструктора значение параметра append равно true, то выводимые данные присоединяются в конец существующего файла. В противном случае эти данные перезаписывают содержимое указанного файла. Но независимо от формы конструктора файл создается, если он не существует. При появлении ошибок ввода-вывода в обоих случаях генерируется исключение IOException. Кроме того, могут быть сгенерированы и другие исключения.


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "C# 4.0: полное руководство"

Книги похожие на "C# 4.0: полное руководство" читать онлайн или скачать бесплатно полные версии.


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

Все книги автора Герберт Шилдт

Герберт Шилдт - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

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

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

  1. BOT20.02.2021, 13:02
    сКОРО КУПЛЮ
А что Вы думаете о книге? Оставьте Ваш отзыв.