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

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

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

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

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

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

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

А во второй форме копия заменяет и перезаписывает целевой файл, если он существует и если параметр оцегиг1 ге принимаетлогическое значение ггпе. Но в обоих случаям может быть сгенерировано несколько видов исключений, включая 10Ехсерсьоп и Е11еисг ЕоцпбЕхсерс1оп. 468 Часть 1. Язык С() В приведенном ниже примере программы метод Сору () применяется для копирования файла. Имена исходного и целевого файлов указываются в командной строке.

Обратите внимание, насколько эта программа короче демонстрировавшейся ранее. Кроме того, она более эффективна. /* Скопировать файл, используя метод Г11е.Сору() Чтобы воспользоваться этой программой, укажите имл исходного и целевого файлов. Например, чтобы скопировать файл Г1АЯТ.ОАТ в файл ЯЕСОНО.ОАТ, введите в командной строке следукщее: СоруГ11е ГТВЯТ.ВАТ ВЕОВ)В.ШГТ */ цятпч Яуясеьы цяьпч Яуясеш.101 с1аяя Соруг11е ( ягагтс човб Ма1п(ясг1пд() агчв) ( 11(агчя.ьепЧСЬ != 2) ( Сопяо1е.ыгьбеЬьпе("Нрименеиие: СоруГ11е Откуда Куда" ); гегцгпг ) )/ Копировать файлы.

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

Применение методов Ех1|1в () и ОеСЬавФАссеввТыпе () С помощью методов класса Г11е очень легко получить нужные сведения о файле. Рассмотрим два таких метода: Ех1яся () и Еег1,аясйссеяяТЬте () . Метод Ехз яся () определяет, существует ли файл, а метод Оесьаяьйссеяят1те () возвращает дату и время последнего доступа к файлу. Ниже приведены формы объявления обоих методов. ясастс ьоо1 Ех1яся(яьгьпч путь) ягаг1с ОагеТтше Оегьаясяссеяят1ше (ягг1пч путь) В обоих методах путь обозначает файл, сведения о котором требуется получить.

Метод ехяя ге ( ) возвращает логическое значение ь гое, если файл существует и доступен для вызывающего процесса. А метод ОеСЬаягйссеяятфше () возвращает структуру Расеттше, содержащую дату и время последнего доступа к файлу. (Структура Глава 14. Применение средств ввода-вывода 469 ЭагеТ1ше описывается далее в этой книге, но метод ТФБГг1пд () автоматически приводит дату и время к удобочитаемому виду.) С указанием недействительных аргументов или прав доступа при вызове обоих рассматриваемых здесь методов может быть связан целый ряд исключений, но в действительности генерируется только исключение 10Ехсергроп. В приведенном ниже примере программы методы Ехдяда () и ЕеГЕаясдссеяяТ1ше () демонстрируются в действии.

В этой программе сначала определяется, существует ли файл под названием се яд . Ехс. Если он существует, то на экран выводит время последнего доступа к нему. О применить методы ехгягя() и песеаяддссеяят1ше() оягпо Буясеш; пягпэ Зуятеш.)О; с1аяя Ехгятяоешо ( *Хапьс тоьс Маьп() ( ТЕ(Г11е.кхгясь(ссеяь.ьхс")) Сопяо1е.игьседьпе("Файл сушестяует. В последний рая он Оыл доступен Г11е.оегьаясдссеяятьше(Тсеяг.ехг"))г е1яе сопяо1е.игггедгпе("Файл не существует")1 Кроме того, время создания файла можно вьгяснить, вызвав метод ЕеССгеаггопТ1ше (), а время последней записи в файл, вызвав метод беСЕаягнгдгеТТше ( ) . Имеются также варианты этих методов для представления данных о файле в формате всеобщего скоординированного времени (1)ТС).

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

В то же время аналогичный метод ввода для чтения и преобразования строк с числовыми значениями в двоичный формат их внутреннего представления не предоставляется. В частности, отсутствует вариант метода Ееас( ( ) специально для чтения строки "100", введенной с клавиатуры, и автоматического ее преобразования в соответствующее двоичное значение, которое может быть затем сохранено в переменной типа Тпг. Поэтому данную задачу приходится решать другими способами. И самый простой из них — воспользоваться методом Рагяе (), определенным для всех встроенных числовых типов данных, Прежде всего необходимо отметить следующий важный факт: все встроенные в С() типы данных, например 1пг или с)опЬ1е, на самом деле являются не более чем псеядони)нами (т.е, другими именами) структур, определяемых в среде .)ь)ЕТ Егагпеьуог)(. В действительности тип в С() невозможно отличить от типа структуры в среде .)Х)ЕТ Егагпегчог)с, поскольку один просто носит имя другого.

В С() для поддержки значений 470 Часть ). Язык С№ простых типов используются структуры, и поэтому для типов этих значений имеются специально определенные члены структур. Ниже приведены имена структур .)х(ЕТ и их эквиваленты в виде ключевых слов С№ для числовых типов данных. Имя типа данных в С№ Имя структуры в.ИЕТ Эти структуры определены в пространстве имен Б уз С ем.

Следовательно, имя структуры 1 пп 32 полностью определяется как Б у я С ем. 1пг 32. Эти структуры предоставляют обширный ряд методов, помогающих полностью интегрировать значения простых типов в иерархию объектов С№. А кроме того, в числовых структурах определяется статический метод Ра гяе [ ), прЕобразующий числовую строку в соответствующий двоичный эквивалент. Существует несколько перегружаемых форм метода Р ах яе ( ) . Ниже приведены его простейшие варианты для каждой числовой структуры.

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

Вес1иа1 ВопЬ1е Бдпд1е 1пг16 1пс32 1пс64 Вгпг16 ()1пг32 ()1п164 Бусе БЬусе Вес1гва1 ВопЬ1е Бьпд1е 1пгб4 1пс32 1пг16 ()1п164 ()1пг32 ()1пг16 вусе БЬусе вгас1с ясаггс всас1с всаггс всасгс всасгс ясас№с всасдс ясасгс всасдс всасдс с(есгва1 с(оиЬ1е г1оас впогс гпс 1опд пвпогт пгпс п1опд Ьусе яЬуге г(есгпга1 Рагяе (вгггпд я) г)оиЬ1е Рагяе (ягг1пд в) г1оас Рагяе (вт с1пд я) 1опд Рагяе (вггьпд я) 1пг Рагве (впгьпд я) впогс Рагяе(ясггпд я) п1опд Рагве(ягггпд я) пгпг Рагве(вггзпд я) пвпогг Рагве(ягг1пд я) Ьуге Рагяе(вггдпд в) яЬусе Рагяе(ягг1п я) Глава 14.

Применение средств ввода-вывода 471 Методы синтаксического анализа позволяют без особого труда преобразовать числовое значение, введенное с клавиатуры или же считанное из текстового файла в виде строки, в соответствующий внутренний формат. В качестве примера ниже приведена программа, в которой усредняется ряд чисел, вводимых пользователем. Сначала пользователю предлагается указать количество усредняемых значений, а затем это количество считывается методом Реаг)11пе () и преобразуется из строки в целое число методом 10032.

Рагяе () . Далее вводятСя ОтдЕльНЫЕ Зиачсиня, ПРеобразуемые методом ВопЬ1е. Расее () из строки в их эквиваленттипа с(опЬ1е. О Эта программа усредняет ряд чисел, вводимых пользователем, ояьпд зуягепд оя1пд зуясегп 10; с1аяя Ячднпяя ( ягаг1с чоьд маги() ( яггьид ягг; Епг п; бопЬ1е яия = 0.0; бооЬ1е ачд, Сопяо1е.нгдсе("Сколько чисел вы собираетесь ввести: "); ясг = Сопяо1е.веапЬ1пе(); ггу ( п = 1п132.расее(ясг); сассЬ(гогпаГЕхсерсьоп ехс) ( Сопяо1е.нгьсе11пе(ехс.меяяаде)) гегогп; ) сассЬ(очегт1онЕхсерсьоп ехс) ( Сопяо1е.нггсепдпе(ехс.Меяяаде); гегогп; ) Сопяо1е.нг1севвпе("Введите " + п + " чисел."); Гог(гпс 1=0; 1 < п ; 1++) ( Сопяо1е.игьсе(": "); яог = Сопяо1е .ВеабЬупе () у ггу ( Г = Ооовзе.Рагяе(ясг)) салол(Гогмасвхсерс1оп ехс) ( Сопяо1е.иг1се11ие (ехс.

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

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

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

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