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

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

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

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

Этим он отличается от упоминавшегося ранее метода Неас((), в котором ввод выполняется с построчной буферизацией. Поэтому если требуется добиться в программе реакции на ввод с клавиатуры, то рекомендуется выбрать метод Неас(кеу () . Запись данных в поток вывода на консоль Потоки Сопзо1е. Онс и Сопзо1е. Ет сот являются объектами типа Техент10ет.

Выводна консоль проще всего осуществить с помощью методов Ихфее () и Иг1сеЬ1пе (), с которыми вы уже знакомы. Существуют варианты этих методов для вывода данных Введите несколько символов а Вы нажали клавишУ: а Ь Вы нажали клавишУ: Ь т( Вы нажали клавишу: т( А Вы нажали клавишу: А Нажата клавиша <БЬ11С>. В Вы нажали клавишу: В нажата клавиша <Бьтйс>. С Вы нажали клавишУ: С нажата клавиша <Бь11с>.

° Вы нажали клавишу: Нажата клавиша <Сопехо1>. 0 Вы нажали клавишу: 0 Нажата клавиша <БЬТТС>. Гаева (4, Применение средств ввода. вывода 425 426 Часть!. Язык С№ каждого из встроенных типов. В классе Сопяо1е определяются его собственные варианты метода иттсе () и ит№сеейпе (), и поэтому оии могут вызываться непосредственно для класса Сопзо1е, как это было уже ие раз показано на страницах данной книги. Но при желании эти и другие методы могут быть вызваны и для класса техситттет, который является базовым для потоков Сопяо1е. Оцт и Сопяо1е.

Еттот. Ниже приведен пример программы, в котором демонстрируется вывод в потоки Сопяо1е. Оцс и Сопзо1е. Еттот. По умолчанию данные в обоих случаях выводятся иа консоль. // Организовать вывод в потоки Сопяо1е.опт и // Сопяо1е.Бттот. ця1по Яуятею; с1аяя Еттоцт ( ятат1с чогс маге П ( тпт а=10, Ь=О; Епт теяц1ск Сопяо1е.оцт.ыт1теЬ№пе("Деление на нуль приведет " + "к исключительной ситуации."); тту ( теяц1т = а / Ь; // сгенерировать исключение при // попытке деления на нуль ) сатсп СО1чю№езузетоЕхсерт1оп екс) ( Сопяо1е.Еттот.ыт1теЬ№пе(екс.иеяяаде)к ) ) При выполнении этой программы получается следующий результат: Деление на нуль приведет к исключительной ситуации.

Попытка деления на нуль. Начинающие программировать порой испытывают затруднения при использовании потока Сопзо1е. Еттот. Перед ними невольно встает вопрос: если оба потока, Сопяо1е. Опт и Сопяо1е. Еттот, по умолчанию выводят результат иа консоль, то зачем иужиы два разных потока вывода? Ответ иа этот вопрос заключается в том, что сгацдартиые потоки могут быть переадресованы иа другие устройства. Так, поток Сопзо1е. Еттот можно переадресовать в выходной файл иа диске, а ие иа экраи.

Это, например, означает, что сообщения об ошибках могут быть направлены в файл журнала регистрации, ие мешая выводу иа консоль. И наоборот, если вывод иа консоль переадресовывается, а вывод сообщений об ошибках остаегся прежним, то иа консоли появятся сообщения об ошибках, а ие выводимые иа иее данные. Мы еще вернемся к вопросу переадресации после рассмотрения файлового ввода-вывода. Класс ~х1еЯ~геав и байтовый ввод-вывод в файл В среде .)ь)ЕТ Ггашекчог(к предусмотрены классы для организации ввода-вывода в файлы. Безусловно, это в основном файлы дискового типа.

На уровне операционной системы файлы имеют байтовую организацию. И как следовало ожидать, для ввода и вывода бай- Глава 14, Применение средств ввода-вывода 427 тов в файлы имеются соответствующие методы. Поэтому ввод и вывод в файлы байтовыми потоками весьма распространен. Кроме того, байтовый поток ввода или вывода в файл может быть заключен в соответствующий объект символьного потока. Операции символьного ввода-вывода в файл находят применение при обработке текста.

О символьных потоках речь пойдет далее в этой главе, а здесь рассматривается байтовый ввод-вывод. Для создания байтового потока, привязанного к файлу, служит класс Г11еяггеалт Этот класс является производным от класса Ятгеаю и наследует всего его функции. Напомним, что классы потоков, в том числе и г11еЯггеаль определены в пространстве имен Яузсею.1О. Поэтому в самом начале любой использующей их программы обычно вводится следующая строка кода: па1пд Яузтем.10; Открытие и закрытие файла Для формирования байтового потока, привязанного к файлу, создается объект класса Г11еЯГгеаю. В этом классе определено несколько конструкторов. Ниже приведен едва ли ие самый распространенный среди иих. Г11еБГгеам 1зтггпд имч файла, Г11еМоде режим1 таблица 14.4.

Значения из перечислению Г11еМопе Значейие Описание Г11еиоое.дррепо Г11емоце.егеасе Добавляет выводимые данные в конец файла Создает новый выходной файл. Существующий файл с таким же име- нем будет разрушен Г11еиопе.ггеатеиен Создает новый выходной файл. Файл с таким же именем не должен существовать Г11еиопе.орел Г11емоце.орепотсгеаге Открывает существующий файл Открывает файл, если он существует.

В противном случае создает новый файл Г11еиобе.тгппсате Открывает существующий файл, но сокращает его длину до нуля Если попытка открыть файл оказывается неудачной, то генерируется исключение. Если же файл нельзя открыть из-за того что ои ие существует, генерируется исключение Г11емоггоипг1ехсерг1оп. А если файл нельзя открыть из-за какой-нибудь ошибки ввода-вывода, то генерируется исключение 1ОЕхсерс1оп. К числу других исключений, которые могут быть сгеиерированы при открытии файла, относятся следующие: Агпиюепгкц11ехсерг1оп (указаио пустое имя файла), Агпцюепгехсерт1оп (указано неверное имя файла), АгяцюепгОцгОгпаппеехсерг1оп (указан неверный режим), яесцг1гуехсерг1оп (у пользователя иет прав доступа к файлу), Раглтооьопдехсерг1оп (слишком длинное имя файла или путь к нему), МотзцррогтебЕхсерс1оп (в имени файла где имя файла обозначает имя открываемого файла, включая полный путь к нему; а режим — порядок открытия файла.

В последнем случае указывается одно из значений, определяемых в перечислении Г11емобе и приведенных в табл. 14А. Как правило, этот конструктор открывает файл для доступа с целью чтения или записи. Исключением из этого правила служит открытие файла в режиме Г11емобе. Аррепб, когда файл становится доступным только для записи. 428 Часть (.

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

Сопво1е.ытстеЬ1пе(ехс.Мевваде)к // Обработать ошибку. ) В первом блоке сасс)ь из данного примера обрабатываются ошибки, возникающие в том случае, если файл ие найден, путь к нему слишком длинен, каталог ие существует, а также другие ошибки ввода-вывода. Во втором блоке сасс(т, который является "уии- версальиым" для всех остальных типов исключений, обрабатываются другие вероятные ошибки (возможио, даже путем повторного генерирования исключения). Кроме того, каждую ошибку можно проверять отдельно, уведомляя более подробно о ией и принимая конкретные меры по ее исправлению.

Ради простоты в примерах, представленных в этой книге, перехватывается только ис- ключение 10ЕхсерС1оп, ио в реальной программе, скорее всего, потребуется перехваты- вать и другие вероятные исключения, связанные с вводом-выводом, в зависимости от обстоятельств. Кроме того, в обработчиках исключений, приводимых в качестве примера в этой главе, просто уведомляется об ошибке, ио зачастую в иих должны быть запрог- раммироваиы конкретные меры по исправлению ошибок, если это вообще возможио. Например, можно предложить пользователю еще раз ввести имя файла, если указанный ранее файл ие был найден.

Как упоминалось выше, конструктор класса Гт1еястеав открывает файл, доступный для чтения или записи. Если же требуется ограничить доступ к файлу только для чтения или же только для записи, то в таком случае следует использовать конструктор Гь1езттеав(вттьпд имч файла, Гт1емобе режим, Гь1ейссевв способ) Как и прежде,имя файла обозначает имя открываемого файла, а режим — порядок открытия файла. В то же время способ обозначает конкретный способ доступа к файлу. В последнем случае указывается одно из значений, определяемых в перечислении Г11ейссевв и приведенных ниже.

Г11ейссевв.нт»те Г11ейссевв.аеас( Г11ейссевв.аеак)ытсте Например, в следующем примере кода файл открывается только для чтения: Гнева )4. Применение средств ввода-вывода 429 Г11езьсеащ Й1п = печ Г11езьгеащ("Сеэь.с(аь", 511еиоае.Орел, 511еассеээ.неаа); По завершении работы с файлом его следует закрыть, вызвав метод Р1оэе () .

Ниже приведена общая форма обращения к этому методу. чоьд С1ове () При закрытии файла высвобождаются системные ресурсы, распределенные для этого файла, что дает возможность использовать их для другого файла. Любопытно, что метод Р1оэе() вызывает, в свою очередь, метод Рйэроэе(), который, собственно, и высвобождает системные ресурсы. Помни) Оператор о кепд, рассматриваемый в главе 20, предоппавляет еще один способ закрытия файла, который больше не нужен. Такой способ оказывается удобным во многих случаях обращения с файлами, поскольку гаранглирует закрьалие ненужного больше файла простыми средппвоми.

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

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