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

Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 84

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

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

Применение класса Я~хеал%кхСек Для создания символьного потока вывода достаточно заключить объект класса Ясгеав, например р11езсгеав, в оболочку класса ЯсгеавИг1сег. В классе Ясгеавиггсег определено несколько конструкторов. Ниже приведем едва ли ие самый распространенный среди иих. Яггеавыгггег (Яггеав поток) 434 часть(, язык с» где поток обозначает'имя открытого потока.

Этот конструктор генерирует исключение Агдпщептнхсерб1оп, если поток не открыт для вывода, а также исключение йтдпшепснп11ехсерс1оп, если поток оказывается пустым. После создания объект класса Ясгеашхгасег выполняет автоматическое преобразование символов в байты. Ниже приведен простой пример сервисной программы ввода с клавиатуры и вывода на диск набранных текстовых строк, сохраняемых в файле сеяс.

схс. Набираемый тест вводится до тех пор, пока в нем не встретится строка "стоп". Для символьного вывода в файл в этой программе используется объект класса е11еястеащ, заключенный в оболочку класса ЯтгеашИтабет. // Простая сервисная программа ввода с клавиатуры // и вывода на диск, демонстрирующая применение // класса Яягеашиг1пег. пяапя Яуятеют пяапд Яуятеш.101 с1аяя ксоп ( ясас1с чо1т) маап() ( яягапс яягт У11езхгеаш тост) сгу ( тост = пен Г11еЯСгеаш("Сеяя.тхя", Е11еиот(е.сгеапе)) ) сапой(1ОЕхсероаоп ехс) ( Сопяо1е.Игаьеъъпе("Не удается открыть файл")т Сопяо1е.игаяеъупе(ехс.меяяаде)т гесогп т ЯпгеашИгатег тапг опб = пеи Япгеашигттег(тост)т Сопяо1е.нгасеьапе("Введите текст, а по окончании — 'стоп'."); Со ( сопяо1е.хг1се(": ")т яог = Сопяо1е.аеабнъпе()т 11(яяг != "стоп") ( ясг = ясг ь "1г1п"т // добавить символ новой строки сгу ( тятя опя.иг1ье(яяг)) ) саясн(1ОЕхсеряаоп ехс) ( Сопяо1е.нг1теьапе("Ошибка записи в файл")," Сопяо1е.иг1СеЬгпе(ехс.Меяяаяе)) Ьгеахт ) ) нь11е(япг )= "стоп"); тясг опт.с1ояе() т Глава !4.

Применение средств ввода-вывода 435 В некоторых случаях файл удобнее открывать средствами самого класса Я г геашиг1се г. Для этого служит один из следующих конструкторов: Яггевшигггег(вгг1пд имя файла) Ясгевшиггсег(всггпд имя файле, Ьоо1 вррепс(71ад) где имя файла — это имя открываемого файла, включая полный путь к нему Если во второй форме этого конструктора значение аррепг(Е1ад равно Ьгпе, то выводимые даииые присоединяются в конце существующего файла. В противном случае эти данные перезаписывают содержимое указаииого файла. Но независимо от формы конструктора файл создается, если ои ие существует.

При появлении ошибок ввода-вывода в обоих случаях генерируется исключение 1Оехсерг1оп. кроме того, могут быть сгеиерироваиы и другие исключения. Ниже приведен вариант представленной ранее сервисной программы ввода с клавиатуры и вывода иа диск, переделанный таким образом, чтобы открывать выходной файл средствами самого класса Яггеашиг1гег.

// Открыть файл средствами класса Ясгевшиггсег. пв1пд Яувсешт ив1пд Яувсеш.10т с1вяв Ксоп ( всвсгс чо16 Мвгп() ( всг1пд всг; 5сгевшиггтег Гясг онст ггу ( Гвсг оис = пен 5сгевшИг1Гег("Гевс.схс")и ) салоп(1ОБхсерс1оп ехс) ( Сопво1е.иг1се11пе("Не удается открыть файл"); Сопво1е.иг1ге11пе(ехс.иевваде)т гегнгп; ) Сопво1е.Иг1севгпе("Введите текст, в по окончании — 'стоп'."); бо ( Сопяо1е.Иг1се(": "): всг = Сопво1е . РевбЬ1пе () ) 11 (вгг != "стоп ) ( вгг = вгг + "1г1п"и // добавить символ новой строки ггу ( Гвсг опс.иггге(вгг)т ) свссп(1ОЕхсерс1оп ехс) ( Сопяо1е.ИггсеЬгпе("Ошибка записи в файл")и Сопво1е.иг1се11пе(ехс.меяввде)т Ьгеваы ) ) ) ни11е(ясг )= "стоп"); 436 часть ), язык Са гатт оиС.С1ояе() ) ) Применение класса Я~хеал)аеайек Для создания символьного потока ввода достаточно заключить байтовый поток в оболочку класса Яттеашиеас)ег. В классе БСтеашиеас)ег определено несколько конструкторов.

Ниже приведен наиболее часто употребляемый конструктор. Бтгеяшаеак)ег (Ясгеаш поток) где поток обозначает имя 'открытого потока. Этот конструктор генерирует исключение Агдишептни11Ехсер11оп, если поток оказывается пустым, а также исключение лгдишепсехсерт1оп, если поток не открыт для ввода. После создания объект класса Ясгеашиеаг)ет выполняет автоматическое преобразование байтов в символы. В приведенном ниже примере создается простая сервисная программа ввода с диска и вывода на экран содержимого текстового файла Сеет.

ахи. Она служит дополнением к представленной ранее сервисной программе ввода с клавиатуры и вывода на диск. // Простая сервисная программа ввода с диска и вывода // на экран, демонстрирующая применение // класса Ястеашаеак)ет. ияьпд 5уясеш; паапа Яуятеш.10к с1аяя Птоз ( ясатьс чогн Маго() ( Е11е5тгеаш гьп; ясг1по як гту ( Ггп пен Г11езтгеяш("Сеяг.схс", Г11емобе.преп); ) сатин(1ОЕхсерс1оп ехс) ( Сопяо1е.нт1теььпе("Ошибка открытия файла"); Сопяо1е.нтгсеньпе(ехс.Меяяяое)к гесигп; ) Ятгеашаеабег гятт тп = пен Ятгеашкеак(ег(11п)к ггу ( нв11е((я = гатт 1п.неак)11пе()) != пи11) ( Сопяо1е. Игьсе11пе (я); ) ) пасс)з(1ОЕхсерт1оп ехс) ( Сопяо1е.Итасенвпе("Ошибка чтения нэ файла"); Сопяо1е.нгьтеъьпе(ехс.иеяяаое)к ) Гяст ап.С1ояе() ) ) ) Глава !4.

Применение средств ввода-вывода 437 Обратите внимание на то, как в этой программе определяется конец файла. Когда метод кеас(Ыпе () возвращает пустую ссылку, это означает, что достигнут конец файла. Такой способ вполне работоспособен, но в классе есгеаивеас)ег предоставляется еще одно средство для обнаружения конца потока — Епс(ос Эггеаяг Это доступное для чтения свойство имеет логическое значение сгпе, когда достигается конец потока, в противном случае — логическое значение Га1яе. Следовательно, свойство епс(01зггеат можно использовать для отслеживания конца файла. В качестве примера ниже представлен другой способ организации цикла ып11е для чтения из файла. нп11е(!Гягг 1п.кпс(ОГэггеап) ( я = Гягг 1п.кеес(Ь1пе (); Сопяо1е.ыгаге11пе(я); ) В данном случае код немного упрощается благодаря свойству епс(Огэсгеам, хотя общий порядок выполнения операции ввода из файла не меняется.

Иногда такое применение свойства Епс(ОГЯСгеам позволяет несколько упростить сложную ситуацию, внося ясность и улучшая структуру кода. Иногда файл проще открыть, используя непосредственно класс зс геапееас(е г, аналогично классу Есгеавнгагег.

Для этой цели служит следующий конструктор: зггеятпеэоег(вагапа имя файла) где имя файла — это имя открываемого файла, включая полный путь к нему. Указываемый файл должен существовать. В противном случае генерируется исключение е11еносеоппс(ехсерг1оп. Если имя файла оказывается пустым, то генерируется исключение дгдовепснп11Ехсерс1оп. А если имя файла содержит пустую строку, то генерируется исключение дгдпмепСЕхсерг1оп. Кроме того, могут быть сгенерированы исключения 1ОЕхсергаоп и Оагесгогуног коппс(кхсергаоп. Переадресация стандартных потоков Как упоминалось ранее, стандартные потоки, например сопяо1е.

1п, могут быть переадресованы. И чаше всего они переадресовываются в файл. Когда стандартный поток переадресовывается, то вводимые или выводимые данные направляются в новый поток в обход устройств, используемых по умолчанию. Благодаря переадресации стандартных потоков в программе может быть организован ввод команд из дискового файла, создание файлов журнала регистрации и даже чтение входных данных из сетевого соединения.

Переадресация стандартных потоков достигается двумя способами. Прежде всего, это делается при выполнении программы из командной строки с помощью операторов < и >, переадресовывающих потоки Сопя о1е. 1п и С оп яо1е. Опг соответственно. Допустим, что имеется следующая программа: ия1по Яуясеап с1аяя теяг ( ясасас тога Ма1п() ( Сопяо1е.игасеаапе("Это тест.")в ) ) 438 Часть (. йзык СЗ Если выполнить зту программу из командной строки Таей > 1од то символьная строка "Это тест.

" будет выведена в файл 1оо. Однако для переадресации ввода указываемый источник входных данных должен удовлетворять требованиям программы, иначе она "зависнет". Операторы < и >, выполняющие переадресацию из командной строки, не являются составной частью С(), а предоставляются операционной системой. Поэтому если в рабочей среде поддерживается переадресация ввода-вывода, как, например, в %(пт(оьчя, то стандартные потоки ввода и вывода можно переадресовать, не внося никаких изменений в программу. Тем не менее существует другой способ, позволяющий осуществлять переадресацию стандартных потоков под управлением самой программы.

Для этого служат приведенные ниже методы Бес1п (), БеСОцс () и Беснггог (), являющиеся членами класса Сопяо1е. згагтс чотп Бег1п(техтаеабег ввод) зсастс чо1б БеГОцс(техсигтсег вывод) зсастс чоаб Бесхггог(техснг1сег вывод) Таким образом, для переадресации ввода вызывается метод Яег1п () с указанием требуемого потока. С этой целью может быть использован любой поток ввода, при условии, что он является производным от класса техбнеас(ег.

А для переадресации вывода вызывается метод Яесоцс О с указанием требуемого потока вывода, который должен быть также производным от класса техснеас)ег. Так, для переадресации вывода в файл достаточно указать объект класса 511еЯггеаш, заключенный в оболочку класса Бсгеашнг1сег. Соответствующий пример программы приведен ниже. // Переадресовать поток Сопзо1е.оцс. цз1пд Бузсеш) цзтпд Буясеш.1от с1аяя Кебтгесс ( ягаг1с чоки матп() ( Бсгеашыгтсег 1оч оцст ггу ( 1од оцс = пен Бсгеашиг1сег("1о0111е.схс"); ) сассп(1ОЕхсерс1оп ехс) ( Сопяо1е Нгкгеькпе("ошибка открытия файла журнала регистрации" ) сопзо1е.игагеетпе(ехс.меззаде); гегцгп) ) // Переадресовать стандартный вывод в // файл 1о0111е.схг. Сопяо1е.зегоцс(1од оцс)т сгу ( Сопзо1е.иг1сеьтпе("Это начало файла журнала регистрации."); Гог(1пс 1=от 1<10; 1+ь) Сопзо1е.иг1геъ1пе(1)т Глава (4.

Применение средств ввода.вывода 439 Сопво1е.нг1сеъ1пв("Это конец файла журнала регистрации.")т ) свесь(10вхсерг1оп ехс) ( Сопво1е.нг1геъ1пе("Ошибка записи в файл журнала регистрации") Сопво1е.игасеьъпе(ехс.иевзаое); 1оо оцГ.С1озе(); ) При выполнении этой программы на экран ничего не выводится, но файл 1бдт11е. схс будет содержать следующее: Это начало файла журнала регистрации. о 1 2 3 5 б 7 8 а Это конец файла журнала регистрации. Попробуйте сами поупражняться в переадресации других встроенных потоков. Чтение и запись двоичных данных В приведенных ранее примерах демонстрировались возможности чтения и записи байтов или символов. Но ведь имеется также возможность (и ею пользуются часто) читать и записывать другие типы данных. Например, можно создать файл, содержащий данные типа 1пг, с(Оные или зпогс.

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

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

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

Г. Шилдт - С# 3.0 Полное руководство
C_sharp_3TCR_code
Apndx.lst
Chap2.lst
Chap3.lst
Chap4.lst
Chap5.lst
Chap6.lst
Chap7.lst
Chap8.lst
Chap9.lst
Chap10.lst
Chap11.lst
Chap12.lst
Chap13.lst
Chap14.lst
Chap15.lst
Chap16.lst
Chap17.lst
Chap18.lst
Chap19.lst
Chap20.lst
Chap21.lst
Chap22.lst
Chap23.lst
Chap24.lst
Chap25.lst
Chap26.lst
Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6461
Авторов
на СтудИзбе
304
Средний доход
с одного платного файла
Обучение Подробнее