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

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

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

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

Но исключительно в целях демонстрации основ обращения с файлами, в том числе и того момента, когда файл молсет быть закрыт, во всех примерах, представленных в этой агаве, используются явные вызовы метода с).ове () . Чтение байтов из объекта класса Уе.1еЯ~геаа В классе е11еяб геащ определены два метода для чтения байтов из файла: кеас]Вуге ( ) и Веас( ( ) . Так, для чтения одного байта из файла используется метод Веас(нуге ( ), общая форма которого приведена ниже. 1пь Неаг(вуге () Всякий раэ, когда этот метод вызывается, из файла считывается один байт, который затем возвращается в виде целого значения. К числу вероятных исключений, которые генерируются при этом, относятся МоСЯпрроггес]Ехсер11оп (поток не открыт ДлЯ ввоДа) и ОЬ)есЬР1эроэедЕхсербйоп (поток закрыт).

Для чтения блока байтов из файла служит метод неас] (), общая форма которого выглядит так: 1пь Кеаа(буче( ] Ьчв, ьпь осгэег, 1пг пищвугез) В методе Веас]() предпринимается попытка считать количество питВугеэ байтов в массив ]зиГ, начиная с элемента Ьиб[оГГэес]. Он возвращает количество байтов, успешно считанных из файла.

Если же возникает ошибка ввода-вывода, то генерируется исключение 10Ехсербйоп. К числу других вероятных исключений, которые генерируются при этом, относится Могзпрроггег)Ехсерг1оп. Это исключение генерируется в том случае, если чтение из файла не поддерживается в потоке. В приведенном ниже примере программы метод Веас]нусе () используется для ввода и отображения содержимого текстового файла, имя которого указывается в качестве аргумента командной строки.

Обратите внимание на то, что в этой программе обрабатываются два вида ошибок, которые могут возникнуть при ее выполнении в первый раз; указанный файл не найден, или пользователь забыл ввести имя файла. /* Отобразить содержимое текстового файла. Чтобы воспользоваться этой программой, укажите имя того файла, содержимое которого требуется отобразить. Например, для просмотра содержимого файла ТЕ5Т.С5 введите в командной строке следующее: 430 Часть (.

язык Сз Вноин11е тивт.св */ ивана Буягев; ия1пд Зуясев.10; с1аяя ЗЬонут1е ( ягастс чоаб матп(ягг1пч[) агчя) ( упс ).; Г11еясгеав 11п) 11(агдя.ьепдГЬ (= 1) ( Сопяо1е.нг1ге11пе("Применение: ЗЬонут1е Файл" ); гетигп; ггу ( 11п = пен Г11евсгеав(агдя[0), Г11емобе.преп); ) сагсЬ(1ОЕхсертуоп ехс) ( Сопяо1е.нгфгеьтпе("Не улается открыть файл" ); Сопяо1е.игтсе11пе(ехс.Меяяаче); гегитп: // Читать байты ло конца файла.

бо ( сгу ( 1 = 11п.кеасВусе()( ) сассЬ(1ОЕхсерт1оп ехс) ( Сопяо1е.нгьге11пе("Ошибка чтения файла") Сопяо1е.нг1се11пе(ехс.иеяяаде)~ Ьгеахп ) 11(1 != -1) Сопяо1е.Иг1те((сЬат) 1); ) нн11е (1 != -1) ( 11п.с1ояе()," ) ) Запись в файл Для записи байта в файл служит метод иг1сеиусе () . Ниже приведена его простейшая форма. чо16 ИгагеВусе(Ьуге иа1) Этот метод выполняегзапись в файл байта, обозначаемого параметром иа1. Если базовый поток не открывается для вывода, то генерируется исключение мос зорро гсек[ехсерсфоп. А если поток закрыт, то генерируется исключение Оь1есгп1ярозег[ехсерс1оп. Для записи в файл целого массива байтов может быть вызван метод Иг1ге () .

Ниже приведена его общая форма. чо1к( Игтте(Ьуте[ ) Ьит, упг огуяег, 1пт пивВугея) Глава (а. Применение средств ввода-вывода 431 В методе иг1ге () предпринимается попытка записать в файл количество ппшВусея байтов из массива БпГ, начиная с элемента ьпг [ОГГяес) . Он возвращает количество байтов, успешно записанных в файл. Если во время записи возникает ошибка, то генерируется исключение 1оехсерг1оп. А если базовый поток не открывается для вывода, то генерируется исключение Иоеяпрроггебкхсер11оп.

Кроме того, может быть сгенерирован ряд других исключений. Вам, вероятно, известно, что при выводе в файл выводимые данные зачастую записываются на конкретном физическом устройстве не сразу. Вместо этого они буферизуются на уровне операционной системы до тех пор, пока не накопится достаточный объем данных, чтобы записать их сразу одним блоком. Благодаря этому повышается эффективность системы. Так, на диске файлы организованы по секторам величиной от 128 байтов и более. Поэтому выводимые данные обычно буферизуются до тех пор, пока не появится возможность записать на диск сразу весь сектор. Но если данные требуется записать на физическое устройство без предварительного накопления в буфере, то для этой цели можно вызвать метод Г1пя) е чоаб Г1нвн() При неудачном исходе данной операции генерируется исключение 1оехсерс1оп.

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

О Записать данные в файл. ив1пп зувсеш; иване зувсеш. 10; с1аяв Иг1сетоа11е ( ясасас тоаб Мв1п(всг1пд[) агав) ( Г11езггеаш Гоне; // Открыть выходной файл. ггу ( Гоис = пек Г11езсгеаш("Сенс.скс", Г11емобе.Сгеаге)т ) сяссп(1ОЕхсерс1оп ехс) ( Сопво1е.нг1сеьапе("Не удается открыть файл"); Сопво1е .Игагеьапе (ехс .Менявшее) т гегнгп," ) // Записать весь английский алфавит в файл. лгу ( Гог(снег с = 'Ь'т с <= '3'; с+т) Гонт .Иггсеэусе( Гвуге) с); ) сассП(1ОЕхсерсаоп ехс) [ Сопяо1е.Иг1се(апе("Ошибка записи в файл") Сопяо1е.нггсеъ1пе(ехс.иеяяапе)т 432 Часть ).

Нзык С» ) гопС.С1оае [); ) ) В этой программе сначала открывается файл се э с. схс для вывода. Затем в этот файл записывается весь английский алфавит прописными буквами. И наконец, файл закрывается. Обратите внимание на то, как вероятные ошибки ввода-вывода обрабатываются в блоках сгу/сассп. После выполнения этой программы файл сезс. схг будет содержать следующий результат вывода: лвсоегпн1экьмнОРОнзтоуихуз ИСПОЛВЗОВЭИИЕ ~ЛВССВ ~'л.1ЕЗ~~Еквй ДЛЯ кьоПИРОВВИИЯ фвйЛЗ Преимущество байтового ввода-вывода средствами класса е11еБсгеав заключается, в частности, в том, что его можно применить к файлам практически любого типа, а не только к текстовым файлам.

В качестве примера ниже приведена программа, позволяющая копировать файл любого типа, в том числе исполняемый. Имена исходного и выходного файлов указываются в командной строке. /* Копировать файл. Чтобы воспользоваться этой программой, укажите имена исходного и выходного файлов. Например, для копирования файла Гтазт.оат в файл ВЕСОМО.Оат ввелите в командной строке следуккцее: Сорутаае ттнвт.пат Бксоив.влт */ па1пд Буэкев) пв1пд Яуэкев.ток с1аээ Соруг11е ( ясак»с то1к) маап(эссгпд() агда) ( )пс 1; Е11еЯСгеав 21п) Е11еяссеав гопс) 12(агдэ.ЬепдСН != 2) ( Сопяо1е.нгссесспе("Применение: Соруг»1е Откуда Куда")1 сеспгп; ) // Открыть исходный файл. ссу ( 21П = ПЕн Г11ЕБСГЕаВ(асдв(0), Г11ЕМОНЕ.ОрЕП); ) саСсн(1ОЕхсерС1оп ехс) ( Сопэо1е.нгсее11пе("Не удается открыть исходный файл"] Сопво1е.нс1Се11пе(ехс.Мевваде)к сесигп) ) Глава (4, Применение средств ввода-вывода 433 // Открыть выходной файл.

сгу ( еопс = лен г11еясгеаш[агдв(1), г11емобе.сгеасе)т ) сагон(1ОБхсерг1оп ехс) ( Сопао1е.иг1геъгпе("Не удаетоя открыть выходной файл") Сопао1е.игсгеьгпе(ехо.Менявшее)т Е).п.С1оае (): гесогп) // Копировать файл сгу ( бо ( = егп.кеабВусе()) гЕ(г (= -1) Еоог.иг1гевуге((буге)г): ) нв11е (). ! = -1): ) оагсь(10кхсергсоп ехс) ( Сопао1е.иг1геь1пе("Ошибка при копировании файла" ); Сопао1е .Иг1гег Еле (ехс .Меаааде) т Е1п.с1ове()т Еоог.С1оае(); ) Символьный ввод-вывод в файл Несмотря па то что файлы часто обрабатываются побайтово, для этой цели можно воспользоваться также символьными потоками.

Преимущество символьных потоков заключается в том, что они оперируют символами непосредственно в уиикоде. Так, если требуется сохранить текст в уиикоде, то для этого лучше всего подойдут именно символьные потоки. В целом для выполнения операций символьного ввода-вывода в файлы объект класса р11езсгеав заключается в оболочку класса Ясгеавпеас)ег или Ясгеавиггсег. В этих классах выполняется автоматическое преобразование байтового потока в символьный, и наоборот.

Не следует, однако, забывать, по иа уровне операционной системы файл представляет собой набор байтов. И применение класса Ясгеавпеас(ег или Ясгеавиггсег никак пе может этого изменить. Класс ясгеавхг1сег является производным от класса техсиг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
Средний доход
с одного платного файла
Обучение Подробнее