Главная » Просмотр файлов » И.Н. Блинов, В.С. Романчик - Основы программирования на языке Java

И.Н. Блинов, В.С. Романчик - Основы программирования на языке Java (1160783), страница 6

Файл №1160783 И.Н. Блинов, В.С. Романчик - Основы программирования на языке Java (И.Н. Блинов, В.С. Романчик - Основы программирования на языке Java) 6 страницаИ.Н. Блинов, В.С. Романчик - Основы программирования на языке Java (1160783) страница 62019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Поток рассматривается приэтом как массив байт, доступ к элементам осуществляется с помощьюметода seek(long poz). Для создания потока можно использовать одиниз конструкторов:RandomAccessFile(String name, String mode);RandomAccessFile(File file, String mode);Параметр mode равен "r" для чтения или "rw" для чтения и записи.// пример #7 : запись и чтение из потока : RandomFiles.javaimport java.io.*;public class RandomFiles {public static void main(String[] args){int dataArr[] = {12, 31, 56, 23, 27, 1, 43, 65, 4, 99} ;try {RandomAccessFile rf = new RandomAccessFile("temp.dat", "rw");for (int i = 0; i < dataArr.length; i++)rf.writeInt(data_arr[i]); // запись в файлfor (int i = dataArr.length - 1; i >= 0; i--) {rf.seek(i*4); // длина каждой переменной типа int 4 байтаSystem.out.println(rf.readInt());// чтение в обратном порядке}rf.close();} catch (IOException e){System.out.println("ошибка доступа к файлу: " + e);}}}Предопределенные потокиКласс System пакета java.lang содержит поля InputStream in,PrintStream out, err, объявленные со спецификаторами public static иявляющиеся стандартными потоками ввода, вывода и вывода ошибоксоответственно.

Эти потоки связаны с консолью, но могут быть переназначены на другое устройство. В настоящее время для консольноговвода используется не байтовый, а символьный поток. При этом дляввода используется подкласс BufferedReader абстрактного классаReader и методы read() и readLine() чтения символа и строки.Следующая программа демонстрирует ввод строки, числа и символа сконсоли и вывод на консоль и в файл.34// пример #8 : ввод с консоли : ConsoleInput.javaimport java.io.*;public class ConsoleInput {public static void main(String[] args){InputStreamReader is = new InputStreamReader(System.in);BufferedReader bistream = new BufferedReader(is);try {char c;int number;System.out.println("введите имя и нажмите <ввод>:");String nameStr = bistream.readLine();System.out.println(nameStr+" введите число:");String numberStr = bistream.readLine();number = Integer.valueOf(numberStr).intValue();System.out.println(nameStr+" вы ввели число "+number);System.out.println(nameStr+" введите символ:");с = (char)bistream.read();System.out.println(nameStr+" вы ввели символ "+c);//Вывод в файлPrintStream ps=new PrintStream(new FileOutputStream ("res.txt"));ps.println("привет "+nameStr+c+number);ps.close();}catch (IOException e){System.out.println("ошибка ввода "+ e); }}}Для вывода данных в файл в текстовом формате использовалсяфильтрованный поток вывода PrintStream и метод println().

МетодvalueOf(String str) возвращает объект класса Integer, соответствующий цифровой строке, метод intValue() преобразует значение этогокласса к базовому типу int.Упражнения1. Создать и заполнить файл случайными целыми числами. Отсортироватьсодержимое файла по возрастанию и результаты вывести на консоль.2. Прочитать текст Java-программы и все слова "public" в объявлении атрибутов класса заменить на "private".3. Прочитать текст Java-программы и записать в другой файл в обратном порядке символы каждой строки.4.

Прочитать текст Java-программы и в каждом слове длиннее двух символоввсе строчные символы заменить прописными. Результат записать в другой файл.5. В файле, содержащем фамилии студентов и их оценки, записать большимибуквами фамилии тех студентов, которые имеют средний балл более "4".356. Файл содержит символы, слова, целые числа и числа с плавающей запятой.Прочитать из файла и вывести на консоль все данные, тип которых вводится изкомандной строки.7. Из файла удалить все слова, содержащие от трех до пяти символов, но приэтом из каждой строки должно быть удалено только максимальное четное количество таких слов.8.

Прочитать текст Java-программы и удалить из него все "лишние" пробелы,оставив только один значащий.9. Из текста Java-программы удалить все виды комментариев.10. Прочитать строки из файла и поменять местами первое и последнее словов каждой строке, записать в тот же файл.7.ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙИсключения представляют собой классы, объекты которых создаются в случае ошибки при выполнении какой-либо функции. Исключения являются наследниками суперкласса Throwable и его подклассов Error и Exception из пакета java.lang.

Часто используется подкласс RuntimeException класса Exception и его наследники:ArithmeticException,ArrayStoreException,ClassCastException,IllegalArgumentException,IllegalMonitorStateException,IndexOutOfBoundsException, SecurityException.Обычно используется один из трех подходов обработки исключений: перехват и обработка исключения; объявление исключений всекции throws метода и передача вызывающему методу; перехват исключения, преобразование его к другому классу и повторный вызов.При вводе/выводе используется класс IOException. Например:void doRead(){try{System.in.read(buffer); }catch (IOException e) {String err = e.toString(); System.out.println(err);}}Метод doRread() в блоке try пытается ввести данные из потокаSystem.in в буфер, если возникает ошибка, она обрабатывается в блоке catch.

Иначе блок catch пропускается. Исключение IOExceptionвозбуждается методом read(): public int read() throws IOException;Если блок try-catch опустить, компилятор укажет на ошибку.Если метод может генерировать исключения, которые сам не обрабатывает, он должен объявить о таком поведении с помощью ключевого слова throws, чтобы вызывающие методы могли защитить себяот этих исключений. Форма объявления:36тип имя_метода(список аргументов) throws список_исключений { }При этом сам объявляемый метод может содержать блоки try-catch, аможет и не содержать их. Например, метод doRead() можно объявить:void doRead() throws IOException{System.in.read(buffer);}Обрабатывать исключение будет метод, вызывающий doRead():void myDoRead(){try {doRead(); }catch (IOException e){String err = e.toString();System.out.println(err); }}Метод может обрабатывать несколько исключений.// пример #1 : обработка 2-х типов исключений :TwoException.javaclass TwoException {public static void main(String[] args) {try {int a = args.length;System.out.println("a = " + a);int b = 10 / a;int c[] = { 10 };c[10] = 11;}catch(ArithmeticException e){System.out.println("деление на 0: "+ e);}catch(ArrayIndexOutOfBoundsException e) {System.out.println("превышение границ массива: " + e); }System.out.println("после блока try/catch .");}}Исключение "деление на 0" возникнет при запуске без аргументовкомандной строки (а = 0).

При наличии аргумента командной строкивызовется исключение "превышение границ массива".Подклассы исключений должны следовать перед любым из их суперклассов, иначе суперкласс перехватит исключения. Например:catch(Exception e){/*код*/} //суперкласс Exception перехватитcatch(ArithmeticException e) {/*код*/}//не сработаетОператоры try можно вкладывать друг в друга. Если у оператораtry низкого уровня нет раздела catch, соответствующего возбужден37ному исключению, поиск будет развернут на одну ступень выше, ибудут проверены разделы catch внешнего оператора try.// пример #2 : вложенные блоки try-catch : MultiTryCatch.javapublic class MultiTryCatch {static void method() {try {int array[] = { 1 };array[10] = 5;} catch(ArrayIndexOutOfBoundsException e) {System.out.println("выход за границы массива: " + e);}}public static void main(String[] args) {try {int a = args.length();System.out.println("a = " + a);a -= 999 / a;method();} catch (ArithmeticException e) {System.out.println("деление на 0: " + e);}}}Оператор throwОператор throw используется для генерации исключения.

Для этого нужно иметь объект подкласса класса Throwable. Общая форма:throw ОбъектThrowable;При достижении этого оператора выполнение кода прекращается.Ближайший блок try проверяется на наличие соответствующего обработчика catch. Если такой существует, управление передается ему.Иначе проверяется следующий из вложенных операторов try.Ниже приведен пример, в котором сначала создается объектисключение, затем оператор throw генерирует исключение, обрабатываемое в разделе catch, в котором генерируется другое исключение.// пример #3 : генерация исключений : ThrowGeneration.javapublic class ThrowGeneration {static void throwGen() {try {38throw new NullPointerException("демонстрация"); }catch (NullPointerException e) {System.out.println("исключение внутри метода throwGen()");throw e;}}public static void main(String[] args) {try { throwGen(); }catch(NulPointerException e) {System.out.println("генерация исключения вне метода: " + e);}}}Вызываемый метод throwGen() создает объект классаNullPointerException и генерирует исключение, перехватываемое обработчиком.

Код обработчика сообщает о том, что сгенерировано исключение, а затем снова генерирует его, в результате чего оно передается обработчику исключений в методе main().Если метод возбуждает исключение в с помощью оператора throwи блок catch отсутствует, то тип класса исключений должен быть указан в операторе throws при объявлении метода. Это означает, что обработка исключения возлагается на метод, вызвавший данный метод.// пример #4 : использование throws : ThrowsSample.javapublic class ThrowsSample {static void method() throws IllegalAccessException {System.out.println(" внутри метода ");throw new IllegalAccessException("демонстрация исключения");}public static void main(String[] args) {try {method();}catch (IllegalAccessException e) {System.out.println("перехвачено: " + e);}}}Ключевое слово finallyИногда нужно выполнить некоторые действия вне зависимости,произошло исключение или нет.

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

Тип файла
PDF-файл
Размер
705,51 Kb
Тип материала
Высшее учебное заведение

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

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