Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Порядок выполнения лабораторной работы




Изучить предлагаемый теоретический материал; создать апплет, содержащий три кнопки, по нажатию на которые создаются экземпляры классов Rect, ColoredRect, DrawableRect (реализованные в лабораторной работе №2). Созданные экземпляры помещаются в один массив с типом класса родителя Rect. Реализовать метод захвата мышкой и перемещения по апплету любого прямоугольника, отображенного в окне. Полученный результат должен функционировать следующим образом (Move_Rect/Dif_Rect)

 

Содержание отчета

1. цель работы;

2. введение;

3. программно-аппаратные средства, используемые при выполнении работы;

4. основную часть (описание самой работы), выполненную согласно требованиям к результатам выполнения лабораторного практикума;

5. заключение (описание результатов и выводы);

6. список используемой литературы.

 

Список рекомендуемой литературы

1. Шилдт, Герберт Java 8. Руководство для начинающих / Герберт Шилдт. - М.: Вильямс, 2015. - 720 c.

2. Гарнаев, Андрей WEB-программирование на Java и JavaScript / Андрей Гарнаев, Сергей Гарнаев. - Москва: СПб. [и др.]: Питер, 2017. - 718 c.

3. Гонсалвес, Энтони Изучаем Java EE 7 / Энтони Гонсалвес. - М.: Питер, 2016. - 640 c.

4. Гупта, Арун Java EE 7. Основы / Арун Гупта. - М.: Вильямс, 2014. - 336 c.

5. Савитч, Уолтер Язык Java. Курс программирования / Уолтер Савитч. - М.: Вильямс, 2015. - 928 c.

 

ЛАБОРАТОРНАЯ РАБОТА №5

Тема: пакет java.io, сериализация объектов

Цель: Целью работы является ознакомление со средствами стандартного пакета языка Java java.io для успешного выполнения операций ввода-вывода из создаваемых программ, а также приобретение практических навыков работы при обмене данными через файл и консоль.

 

Методические указания к выполнению работы

Поток данных

Java для описания работы по вводу/выводу используется специальное понятие поток данных (stream). Поток данных связан с некоторым источником или приемником данных, способных получать или предоставлять информацию. Соответственно, потоки делятся на входные - читающие данные, и на выходные - передающие (записывающие) данные. Введение концепции stream позволяет отделить программу, обменивающуюся информацией одинаковым образом с любыми устройствами, от низкоуровневых операций с такими устройствами ввода/вывода.

В Java потоки естественным образом представляются объектами. Описывающие их классы как раз и составляют основную часть пакета java.io. Они довольно разнообразны и отвечают за различную функциональность. Все классы разделены на две части - одни осуществляют ввод данных, другие вывод.

Минимальной "порцией" информации является бит, принимающий значение 0 или 1. Традиционно используется более крупная единица измерения байт, объединяющая 8 бит. Таким образом, значение, представленное 1 байтом, находится в диапазоне от 0 до 28-1=255, или, если использовать знак, от -128 до +127. Примитивный тип byte в Java в точности соответствует последнему, знаковому диапазону.

Базовые, наиболее универсальные классы позволяют считывать и записывать информацию именно в виде набора байт. Чтобы их было удобно применять в различных задачах, java.io содержит также классы, преобразующие любые данные в набор байт. Например, если нужно сохранить результаты вычислений - набор значений типа double - в файл, то их можно сначала легко превратить в набор байт, а затем эти байты записать файл. Аналогичные действия совершаются и в ситуации, когда требуется сохранить объект (т.е. его состояние) - преобразование в набор байт и последующая их запись в файл. Понятно, что при восстановлении данных в обоих рассмотренных случаях проделываются обратные действия - сначала считывается последовательность байт, а затем она преобразовывается в нужный формат.

 

Байтовые потоки

Байтовые потоки определяются в двух иерархиях классов. Наверху этой иерархии – два абстрактных класса: Inputstream и Outputstream (рисунок 1). Каждый из этих абстрактных классов имеет несколько конкретных подклассов, которые обрабатывают различия между разными устройствами, такими как дисковые файлы, сетевые соединения и даже буферы памяти.

Абстрактные классы Inputstream и Outputstream определяют несколько ключевых методов, которые реализуются другими поточными классами. Два наиболее важных— read() и write(), которые, соответственно, читают и записывают байты данных. Оба метода объявлены как абстрактные внутри классов inputstream и outputstream и переопределяются производными поточными классами.

InputStream - это базовый класс для потоков ввода, т.е. чтения. Соответственно, он описывает базовые методы для работы с байтовыми потоками данных. Эти методы необходимы всем классам, наследующимся от InputStream:

Метод int read() – абстрактный. Считывает один байт из потока. Если чтение успешно, то значение между 0..255 представляет собой полученный байт, если конец потока, то значение равно –1.

Метод int read(byte[] b) возвращает количество считанных байт и сохраняет их в массив b. Метод так же абстрактный.

Метод read(byte[] b, int offset, int length) считывает в массив b начиная с позиции offset length символов.

Метод int available() возвращает количество байт, на данный момент готовых к чтению из потока. Этот метод применяют, что бы операции чтения не приводили к зависанию, когда данные не готовы к считыванию.

Метод close() заканчивает работу с потоком.

классе OutputStream, аналогичным образом, определяются три метода

write() – один принимающий в качестве параметра int, второй byte[], и третий

byte[], плюс два int-числа. Все эти методы возвращают void:

Метод void write(int i) пишет только старшие 8 бит, остальные игнорирует.

Метод void write(byte[] b) записывает массив в поток.

Метод void write(byte[] b, int offset, int length) записывает length-элементов из массива байт в поток, начиная с элемента offset.

Метод flush() используется для очистки буфера и записи данных.





Поделиться с друзьями:


Дата добавления: 2018-10-18; Мы поможем в написании ваших работ!; просмотров: 257 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Настоящая ответственность бывает только личной. © Фазиль Искандер
==> читать все изречения...

2364 - | 2087 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.