Читаем C# 4.0 полное руководство - 2011 полностью

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

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

void Flush

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

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

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

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

using System; using System.10;

class WriteToFile {

static void Main(string[] args) {

FileStream fout = null;

try {

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

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

// Записать весь английский алфавит в файл, for(char с= 'А';с<= 'Z'; C++)fout.WriteByte((byte) с);

} catch(IOException exc) {

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

} finally {

if(fout != null) fout.Close;

}

}

}

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

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

ABCDEFGHIJKLMNOPQRSTUVWXYZ

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

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

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

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных