Всякий раз, когда этот метод вызывается, из файла считывается один байт, который затем возвращается в виде целого значения. К числу вероятных исключений, которые генерируются при этом, относятсяNotSupportedException(поток не открыт для ввода) иObjectDisposedException(поток закрыт).

Для чтения блока байтов из файла служит методRead (), общая форма которого выглядит так.

int Read(byte[ ]array,intoffset,intcount)

В методеRead() предпринимается попытка считать количествоcountбайтов в массивarray,начиная с элементаarray[offset].Он возвращает количество байтов, успешно считанных из файла. Если же возникает ошибка ввода-вывода, то генерируется исключениеIOException.К числу других вероятных исключений, которые генерируются при этом, относитсяNotSupportedException.Это исключение генерируется в том случае, если чтение из файла не поддерживается в потоке.

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

/* Отобразить содержимое текстового файла.

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

ShowFile TEST.CS

*/

using System; using System.10;

class ShowFile {

static void Main(string[] args) { int i;

FileStream fin; if(args.Length != 1)    {

Console.WriteLine("Применение: ShowFile Файл"); return;

}

try {

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

} catch(IOException exc) {

Console!WriteLine("He удается открыть файл");

Console.WriteLine(exc.Message);

return; // Файл не открывается, завершить программу

}

// Читать байты до конца файла, try {

• do {

i = fin.ReadByte();

if(i != -1) Console.Write((char) i);

} while(i != -1);

} catch(IOException exc) {

Console.WriteLine("Ошибка чтения файла");

Console.WriteLine(exc.Message) ;

} finally { fin.Close() ;

}

}

}

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

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