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

Здесь есть возможность читать онлайн «Герберт Шилдт - C# 4.0 полное руководство - 2011» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Старинная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

C# 4.0 полное руководство - 2011: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «C# 4.0 полное руководство - 2011»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

C# 4.0 полное руководство - 2011 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «C# 4.0 полное руководство - 2011», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Обратите также внимание на то, как в этой программе обнаруживается конец файла. Методы двоичного ввода генерируют исключение EndOf StreamException по достижении конца потока, и поэтому файл читается до тех пор, пока не будет найден искомый предмет или сгенерировано данное исключение. Таким образом, для обнаружения конца файла никакого специального механизма не требуется.

Файлы с произвольным доступом

В предыдущих примерах использовались последовательные файлы , т.е. файлы со строго линейным доступом, байт за байтом. Но доступ к содержимому файла может быть и произвольным. Для этого служит, в частности, метод Seek (), определенный в классе FileStream. Этот метод позволяет установить указатель положения в файле , или так называемый указатель файла , на любое место в файле. Ниже приведена общая форма метода Seek ():

long Seek(long offset, SeekOrigin origin)

где offset обозначает новое положение указателя файла в байтах относительно заданного начала отсчета (origin). В качестве origin может быть указано одно из приведенных ниже значений, определяемых в перечислении SeekOrigin.

Значение

Описание

SeekOrigin.Begin

Поиск от начала файла

SeekOrigin.Current

Поиск от текущего положения

SeekOrigin.End

Поиск от конца файла

Следующая операция чтения или записи после вызова метода Seek () будет выполняться, начиная с нового положения в файле, возвращаемого этим методом. Если во время поиска в файле возникает ошибка, то генерируется исключение IOException. Если же запрос положения в файле не поддерживается базовым потоком, то генерируется исключение NotSupportedException. Кроме того, могут быть сгенерированы и другие исключения.

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

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

using System; using System.10;

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 KMOQSUWY

Несмотря на то что метод 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();

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

Интервал:

Закладка:

Сделать

Похожие книги на «C# 4.0 полное руководство - 2011»

Представляем Вашему вниманию похожие книги на «C# 4.0 полное руководство - 2011» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «C# 4.0 полное руководство - 2011»

Обсуждение, отзывы о книге «C# 4.0 полное руководство - 2011» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x