- •1. Поняття класа-оболонки. Розташування цих класів ієрархії класів Java
- •2. Операції упаковки та распаковки класів-оболонок
- •3. Практичне застосування класів-оболонок
- •4. Порівняння рядків
- •5. Особливості класу String для обробки рядків
- •6. Особливості класу StringBuffer для обробки рядків. Довжина та місткість буферу
- •7. Відмінності між класами String та StringBuffer
- •8. Класи та інтерфейси каркасу колекцій мови Java
- •9. Інтерфейс Collection
- •Iterator
- •10. Порівняння реалізацій інтерфейсу List
- •11. Програмна реалізація ArrayList. Основні операції
- •12. Використання ітератору для роботи из елементами колекцій
- •13. Алгоритми каркасу колекцій мови Java
- •14. Способи визначення порядку елементів колекції
- •15. Програмна реалізація PriorityQueue. Основні операції
- •16. Програмна реалізація ArrayDeque. Основні операції
- •17. Програмна реалізація HashSet . Основні операції
- •18. Програмна реалізація LinkedHashSet . Основні операції
- •19. Програмна реалізація TreeSet . Основні операції
- •20. Способи отримання елементів карти
- •21. Програмна Реалізація HashMap . Основні операції
- •22. Програмна Реалізація TreeMap . Основні операції
- •23. Реалізація множин на базі EnumSet і EnumMap
- •24. Пакет Java. Правила іменування пакетів
- •25. Типи імпорту пакетів. Вирішення конфліктів імен при імпортуванні
- •26. Розмежування доступу до вмісту пакету
- •27. Модуль компіляції. Визначення, вміст, правила опису
- •28. Призначення jar-файлів. Іх склад
- •29. Байтові файлові потоки введення/виведення
- •InputStream
- •30. Буферізовані файлові байтові потоки введення/виведення
- •31. Символьні файлові потоки введення/виведення
- •32. Буферізовані файлові символьні потоки введення/виведення
- •33. Механізм обробки подій у застосуваннях java з gui 34. Шаблон «Компонувальник» для розташування елементів gui
30. Буферізовані файлові байтові потоки введення/виведення
По умолчанию потоки не оснащаются буфером
Операции чтения/записи обращаются к операционной системе для чтения одного байта с диска или записи одного байта на диск
• Буферизация: чтение/запись блоками данных
Сокращается количество низкоуровневых файловых операций
Время записи/чтения уменьшается в сравнении с не буферизированными операциями (производительность выше)
Чтение и запись выполняется не побайтово, а через буфер
Размер буфера устанавливается по умолчанию
Если записи фиксированного размера, то размер буфера можно изменить
• Оболочки-буферы
BufferedInputStream
BufferedOutputStream
• При создании объекта буферизированного ввода/вывода в конструктор
передается
объект входного/выходного потока, размер буфера по умолчанию
DEFAULT_BUFFER_SIZE = 8192
•BufferedInputStream(InputStream in)
•BufferedOutputStream(OutputStream out)
объект входного/выходного потока, размер буфера
•BufferedInputStream(InputStream in, int size)
•BufferedOutputStream(OutputStream out, int size)
1) создать файловый поток: входной (для чтения) –
FileInputStreamили выходной (для записи) –
FileOutputStream
2) Поместить файловый поток в соответствующий буферизированный поток: входной (для чтения) – BufferedInputStreamили выходной (для записи) –
BufferedOutputStream
3) Выполнить необходимые операции чтения/записи
4) Закрыть буферизированный поток. Закрытие
буферизированного потока автоматически приводит к закрытию лежащего в его основе потока
31. Символьні файлові потоки введення/виведення
Чтение символов из файла
1) Открыть файл и связать его с входным потоком, используя FileReader Например, FileReader fr = new FileReader(«file.txt");
2) Обработать исключительные ситуации, связанные с открытием файла
3) Прочитать из файла используя метод read()- перегруженный метод
4) Закрыть входной поток с помощью метода close()
Запись в файл
1) Открыть файл и связать его с выходным потоком
FileWriter fw = new FileWriter("out.tx");
2) Обработать исключительные ситуации, связанные с ошибками
открытия файла
3) Выполнить запись в файл методом write (кроме записи символов
и массива символов метод перегружен для записи строки)
Например,
public void write(String str) throws IOException
4) Закрыть выходной поток с помощью метода close()
• По умолчанию при открытии уже существующего файла, его содержимое перезаписывается
• Режим дозаписи в файл устанавливается при его открытии
• Режим записи устанавливается в конструкторе
public FileWriter(String fileName, boolean append)
• Второй параметр: добавлять ли в конец файла, если он существует?
32. Буферізовані файлові символьні потоки введення/виведення
1) создать файловый поток: входной (для чтения) – FileReader или выходной (для записи) – FileWriter
2) Поместить файловый поток в соответствующий буферизированный поток: входной (для чтения) – BufferedReaderили выходной (для записи) – BufferedWrite
3) Выполнить необходимые операции чтения/записи
4) Закрыть буферизированный поток. Закрытие буферизированного потока автоматически приводит к закрытию лежащего в его основе потока
readLine: читает строку в String
•read: читает по одному символу char
•close: закрывает BufferedReader поток
