Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ООП не все.docx
Скачиваний:
7
Добавлен:
22.09.2019
Размер:
224.93 Кб
Скачать

Вопрос 25 Бинарный ввод и вывод при помощи класса FileStream.

FileStream используется для чтения и записи отдельных байтов или блоков байтов. Поскольку символы — ничто иное, как байты, FileStream можно использовать и для потоков символов. Однако он не имеет таких удобных методов для работы с символь­ными потоками, как StreamReader и StreamWriter.

Класс FileStream можно использовать для создания новых файлов или для работы с уже существующими.

Некоторые члены класса FileStream:

Член класса FileStream

Описание

Close

Закрывает выходной поток и освобождает ассоциированные с ним ресурсы.

ReadByte

Читает один байт из входного потока.

WriteByte

Пишет один байт в выходной поток.

Length

Возвращает длину потока (в байтах).

Метод WriteBytes показывает, каким образом класс FileStream можно использовать для создания нового файла, а затем для записи в него десяти чисел типа byte. Метод ReadBytes применяет FileStream для пос­ледующего их чтения из этого файла.

Для создания нового объекта FileStream можно использовать собственный конструк­тор FileStream, или методы Filelnfo. Второй путь применен в листинге 22.3, где OpenWrite (строка 13) и OpenRead (строка 41) используются для получения бинарных потоков типа FileStream.

Для записи данных, объектом outStream типа FileStream создается новый файл C:\MyTestFiles\numbersl.dat. Метод WriteByte принимает один аргумент типа byte и записывает его туда. В нашем случае в записываются первые десять чисел (начиная с нуля).

Следует отметить, что файл C:\MyTestFiles\numbersl.dat — не текстовый, а бинар­ный, текстовым редактором просмотреть его нельзя. Для просмотра можно использо­вать поток типа FileStream, возвращенный методом OpenRead.

Свойство Length позволяет определить, сколько раз должен выполниться цикл for. Это имеет смысл, поскольку:

  • Length возвращает число байт в inStream

  • цикл будет повторятся Length раз

  • при каждой итерации цикла считывается один байт, начиная с первого.

Таким образом, каждый байт из numbersl.dat присваивается переменной temp и выводится затем на консоль.

Данные из numbersl.dat можно использовать в вычислениях. В нашем случае, на каждом шаге temp прибавляется к totalSum (что и определяет сумму всех чисел из файла numbersl.dat). Результат выводится на консоль.

Вопрос 26 Форма как базовый элемент графического интерфейса. Заголовок, первоначальное размещение, свойства BackColor, ForeColor, Font; Cursor; BackGroundImage.

BackColor

Получает или задает цвет фона для элемента управления. (Переопределяет Control.BackColor.)

ForeColor

Получает или задает основной цвет элемента управления. (Переопределяет Control.ForeColor.)

Font

Возвращает или задает шрифт текста, отображаемого элементом управления. (Унаследовано от Control.)

Cursor

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

BackgroundImage

Инфраструктура. Данное свойство не применимо к этому классу. (Переопределяет Control.BackgroundImage.)