Главная » Просмотр файлов » Г. Шилдт - С#4.0 Полное руководство

Г. Шилдт - С#4.0 Полное руководство (1160795), страница 88

Файл №1160795 Г. Шилдт - С#4.0 Полное руководство (Г. Шилдт - С#4.0 Полное руководство) 88 страницаГ. Шилдт - С#4.0 Полное руководство (1160795) страница 882019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 88)

Е.зееь(0, Яееиог101п.ве01п)у // найти первый байт сп = (сваг) Г.реабВусе()) Сопяо1е.иггпе11пе("Первая буква: " + сь); г.зееь(1, Яееьог1о1п.Ведьп); // найти второй байт сь = (сваг) г.кеадвусе(); Сопяо1е.иг1те11пе("Вторая буква: " + сп); Е.зееь(0, Яееьог101п.вечгп); // найти пятый байт сп = (сьаг) г.йеас)Бусе(); Сопяо1е.иггте11пе (" Пятая буква: " + сп) ) Сопяо1е.иг1пе11пе(); // й теперь прочитать буквы английского алфавита через одну.

сопяо1е .хгьпеььпе (" Буквы алфавита через одну: ") ) гогрьпс г=с; 1 < 26; 1 += 2) ( г.зееь(1, Яееьог101п.ведгп)у // найти 1-й символ сь = (спас) г.йеаовуте(); Сопяо1е.иг1пе(сп + " ")) ) ) сапов(10кхсерс1оп ехс) ( сопяо1е.хгзгеььпе("оыибка ввода-вывода1п" + ехс.меяяаде)) ) 61па11у ( 16(г )= пп11) 1.01ояе(); ) Сопяо1е.иг1пе11пе(); ) При выполнении этой программы получается следующий результат. Глава 14. Применение средств ввода-вывода 463 Первая буква: А Вторая буква: В Пятая буква: Е Буквы алфавита. через одну: А с е 6 1 к м о 0 я и х т Несмотря на то что метод Бее)г () имеет немало преимуществ при использовании с файлами, существует и другой способ установки текущего положения в файле с помощью свойства Роз1?1оп. Как следует из табл. 14.2, свойство Ровд?доп доступно как для чтения, так и для записи. Поэтому с его помощью можно получить или же установить текущее положение в файле. В качестве примера ниже приведен фрагмент кода из предыдущей программы записи и чтения из файла с произвольным доступом галс)ов.

с(а?, измененный с целью продемонстрировать применение свойства РОЯ1?1оп. сопяо1е.х?1?еььпе("Буквы алфавита через одну: ")г го?(?п? 1=01 1 < 26; ь += 2) ( Г.роя??гоп = 11 /! найти ?-й символ посредством свойства Роя??1оп сЬ = (ода?) г.ятагану?е () г Соп*о1е.и?ь?е(сЬ + " ")г Применение класса М(мпохув~геаа Иногда оказывается полезно читать вводимые данные из массива или записывать выводимые данные в массив, а не вводить их непосредственно из устройства или выводить прямо на него. Для этой цели служит класс МевогуБС?еав. Он представляет собой реализацию класса Б?геав, в которой массив байтов используется для ввода и вывода. В классе МевогуБ?геав определено несколько конструкторов.

Ниже представлен один из них: Мево?уз??еав(Ьу?е[ ] Ьи?Еег) где ЬиГГег обозначает массив байтов, используемый в качестве источника или адресата в запросах ввода-вывода. Используя этот конструктор, следует иметь в виду, что массив Ьиггег должен быть достаточно большим для хранения направляемых в него данных. В качестве примера ниже приведена программа, демонстрирующая применение класса Мево гуБ? геав в операциях ввода-вывода.

Продемонстрировать применение класса Мено?уз??еав. пя1по Яуя?епч пя?по Яуя?ев. 10; с1аяя МевЯ??пево ( я?а?1с чо1С Маял() ( Ьу?е(] я?о?аЧе = лен Ьу?е[255]; Создать яапоминаювий поток. Мево?уЯ??еав вевя??в = пеи Мево?уз??еав(я?о?аде) Заключить объект везя??в в оболочки классов 464 Часть!. Язык С() // чтения и записи данных в потоки. Яггеавыгггег вепигг = пен ЯггеавХгзгег(апевягпп); Яггеаввеабег зевса)г лен Яггеаввеабег(вевялгв); Сгу ( Записать данные в память, используя объект вевнСг. ьог(1пС а=О; 1 < 10) 1++) вевнсг.иг1сеь1пе("Ьусе [" + 1 + "]: " + г)а // Поставить в конце точку. вевнгг.иг1Се01пе("."): вепигг.р1цял()а Сопяо1е.нгггекьпе("Чтение прямо из массива ягогаде: Отобразить содержимое массива яоогаЧе непосредственно. белеясь(сьаг сЬ ьп ясогаЧе) ( 1б (сЬ == '.') Ьгеаьи Сопяо1е.игтге(сл)п ) Сопяо1е.игтге11пе("1пчтение из потока с помощью объекта вевгог: Читать из объекта вевяггв средствами ввода данных из потока.

вевясгв.яеех(0, яее)аог191п.вечтп)) // установить указатель файла // в исходное положение яог1пЧ вбг = вевгбг.кеас11пе()~ нк11е(ягг )= по11) ( ясг = зевса(г.кеаоьтпе()а 11(яСг[0] == '.') Ьгеаса Сопяо1е.нгьоесапе(ягг); ) сагсЬ(108хсергзоп ехс) ( Сопяо1е.Иггсеьфпе("Ошибка ввода-вывода1п" + ехс.неяяаЧе); Гупа11у ( // Освободить ресурсы считывающего и записывающего потоков.

вевнсг.С1ояе()1 вевгсг. С1ояе () а Вот к какому результату приводит выполнение втой программы. Чтение прямо из массива ягогасе: Ьусе [0]: 0 Ьусе [1): 1 Ьуяе [2]: 2 Ьуге [З]а З Ьуое [я]а я Ьусе [5]: 5 Ъуге [б]а б ЬуСе [7]а 7 Ьусе [8]: 8 Ьуяе [9) а 9 Глава 14. Применение средств ввода-вывода 466 потока с псмсшью объекта шештбт: 1 2 3 5 б 7 8 9 Чтение из ЬуСе (1]: Ьусе (2]: Ьусе (3]: Ьусе (4]: Ьуге (5]: Ьуге (б]: Ьуее (7): Ьусе (8]: Ьуте (9]: Применение классов Я~г~пдд4еас1ег и ВШпдИгНег Для выполнения операций ввода-вывода с запоминанием в некоторых приложениях в качестве базовой памяти иногда лучше использовать массив типа з ссгпо, чем массив типа Ьуге. Именно для таких случаев и предусмотрены классы БС тыл ЧНеа с)е г и Бтг1пЧИг1Сег.

В частности, класс БСг1пчпеас)ег наследует от класса текгйеаг]ег, а класс Бсг1поиг1сег — от класса техсиг1сег. Следовательно, они представляют собой потоки, имеющие доступ к методам, определенным в этих двух базовых классах, что позволяет, например, вызывать метод Неас(Ь1пе () для объекта класса Бсг1пчнеас)ег, а метод игтсеьдпе () — для объекта класса Бсг1поиг1сег. Ниже приведен конструктор класса Бгг1попеабег: БСгьпчаеас(ег(еттьпч Ю где з обозначает символьную строку, из которой производится чтение. В классе Бггспонг1Сег определено несколько конструкторов.

Ниже представлен один из наиболее часто используемых. Бтт1пчнт1Сет() В этой программе сначала создается массив байтов, называемый всогаое. Затем этот массив используется в качестве основной памяти для объекта шешесгш класса Нешогуэтгеаш. Из объекта шешеггт, в свою очередь, создаются объекты шешгс)г класса Бсгеашкеас)ег и шешнсг класса Бсгеашнг1сег. С помощью объекта шешнсг выводимые данные записываются в запоминающий поток.

Обратите внимание на то, что после записи выводимых данных лля объекта пешнст вызывается метод 51пеь () . Это необходимо для того, чтобы содержимое буфера этого объекта записывалось непосредственно в базовый массив. Далее содержимое базового массива байтов отображается вручную в цикле тогеасЬ. После этого указатель файла устанавливается с помощью метода Бее)с () в начало запоминающего потока, из которого затем вводятся данные с помощью объекта потока тешгбг. Запоминающие потоки очень полезны для программирования.

С их помощью можно, например, организовать сложный вывод с предварительным накоплением данных в массиве до тех пор, пока они не понадобятся. Этот прием особенно полезен для программирования в такой среде с графическим пользовательским интерфейсом, как Х!пг]оъув. Кроме того, стандартный поток может быть переадресован из массива. Это может пригодиться, например, для подачи тестовой информации в программу. 466 Часть (. Язык С() // // Продемонстрировать применение классов Бтгьпчаеабег и Ятгьпчнгттег.

пятпэ Буятеьч ия1пд Яуятеш.10; с1аяя Бтгкбгктгоешо ( ятатзс чогб Матп() ( Бтг1пЗИгттег ятгитг = пп11; Яггтп9реабег яттгбт = пп111 тгу ( // Создать объект класса Бтг1пчнг1тег. яггигг = пеи Бггзпциг1тег(); // Вывести данные в записывающий поток типа Ятгьпднтттег. Еог(гпт 1=01 1 < 10; 1++) ятгитг.нгзтеьтпе("Значение т равно: " + 1); // Создать объект класса Ятгьпчаеабег. ятггбг = пеи Бтг1пцкеабег(ятгитг.тоятг1п9()) // Ь теперь ввести данные из считывающего потока типа Бтгьпдаеабег. ятг1пд ятг = ятггбг.кеаЖЕпе()Г ик11е(ятг )= пп11) ( ятг = ятггдг.кеаг)ЬЕпе(); Сопяо1е.нгттеЬЕпе(ятг); ) ) сатсь(1ОБхсерт1оп ехс) ( Сопяо1е.нг1теь1пе("Ошибка ввода-вывода1п" + ехс.Меняле)7 ) Егпа11у ( // Освободить ресурсы считывающего и записывающего потоков.

1Е (ятггбг )= пи11) ятггбг.С1ояе () ) тЕ (ятг«тг )= пп11) ятгитг.С1ояе (] ) ) ) ) Вот к каком результату приводит выполнение этого кода. т равно: 1 равно: 2 1 равно: 3 т равно: 4 т равно: 5 равно: б т равно: 7 равно: 8 равно: 9 Значение Значение Значение Значение Значение Значение Значение Значение Значение Этот конструктор создает записывающий поток, который помещает выводимые данные в строку. Длл получения содержимого этой строки достаточно вызвать метод ТОБСг1пп () . Ниже приведен пример, демонстрирующий применение классов Бгг1понеас)ег и Бсг1пдиг1гег. Глава 14. Применение средств ввода-вывода 467 В данном примере сначала создается объект я сгисг класса Бсгйпдигъсег, В КОТО- рый выводятся данные с помощью метода Нг1се Г 1пе ( ) .

Затем создается объект класса Б Гг1пднеас)е г с использованием символьной строки, содержащейся в объекте я С гнгг. Эта строка получается в результате вызова метода ТоБГгьпд() для объекта яггигг. И наконец, содержимое данной строки считывается с помощью метода неас(Ь1пе () . Класс й.1е В среде . НЕТ Ргатетцог)г определен класс Е11е, который может оказаться полезным для работы с файлами, поскольку он содержит несколько статических методов, выполняющих типичные операции над файлами. В частности, в классе Е11е имеются методы для копирования и перемещения, шифрования и расшифровывания, удаления файлов, а также для получения и задания информации о файлах, включая сведения об их существовании, времени создания, последнего доступа и различные атрибуты файлов (только для чтения, скрытых и пр.).

Характеристики

Тип файла
DJVU-файл
Размер
7,66 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6430
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее