Типы потоков вывода
Какие подклассы класса OutputStream вы знаете, для чего они предназначены?
Основные подклассы класса OutputStream и их предназначение:
-
FileOutputStream:-
Предназначен для записи байтов в файл.
-
Пример: запись данных в текстовые или бинарные файлы.
-
-
ByteArrayOutputStream:-
Предназначен для записи байтов в массив байтов, который увеличивается по мере необходимости.
-
Пример: создание буфера для данных перед их окончательной обработкой или отправкой.
-
-
FilterOutputStream:-
Абстрактный класс, предназначенный для создания потоков, которые фильтруют данные, проходящие через них.
-
Пример: базовый класс для других потоков, таких как
BufferedOutputStreamиDataOutputStream.
-
-
BufferedOutputStream:-
Предназначен для буферизации выходных байтов, что улучшает производительность за счет уменьшения количества операций записи.
-
Пример: используется для эффективной записи больших объемов данных.
-
-
DataOutputStream:-
Предназначен для записи примитивных типов данных (int, float и т.д.) в поток в формате, независимом от платформы.
-
Пример: запись данных в бинарном формате для последующего чтения
DataInputStream.
-
-
PrintStream:-
Предназначен для удобной записи форматированного текста и данных в поток.
-
Пример: используется для записи данных в консоль (
System.outявляется экземпляромPrintStream) или в файл с форматированием.
-
Какие подклассы класса Reader вы знаете, для чего они предназначены?
Основные подклассы класса Reader и их предназначение:
-
FileReader:-
Предназначен для чтения текстовых файлов.
-
Пример: используется для чтения содержимого текстового файла в виде символов.
-
-
BufferedReader:-
Предназначен для буферизированного чтения текста, что улучшает производительность.
-
Пример: чтение текста построчно с использованием метода
readLine().
-
-
CharArrayReader:-
Предназначен для чтения данных из массива символов.
-
Пример: используется для чтения данных из уже существующего массива символов в памяти.
-
-
StringReader:-
Предназначен для чтения данных из строки.
-
Пример: используется для чтения символов из строки, как если бы она была потоком ввода.
-
-
FilterReader:-
Абстрактный класс для создания потоков, которые фильтруют данные, проходящие через них.
-
Пример: базовый класс для других специализированных потоков чтения.
-
-
InputStreamReader:-
Предназначен для преобразования байтового потока в поток символов, используя указанный кодек.
-
Пример: используется для чтения данных из байтового потока, таких как
FileInputStream, с заданной кодировкой.
-
-
PipedReader:-
Предназначен для чтения данных из потока, который подключен к
PipedWriter. -
Пример: используется для межпоточного взаимодействия, где один поток записывает данные, а другой читает их.
-
Какие подклассы класса Writer вы знаете, для чего они предназначены?
Основные подклассы класса Writer и их предназначение:
-
FileWriter:-
Предназначен для записи текстовых данных в файл.
-
Пример: использование для сохранения текстовой информации в файл.
-
-
BufferedWriter:-
Предназначен для буферизированной записи текста, что улучшает производительность за счет снижения частоты операций записи.
-
Пример: эффективная запись больших объемов текстовых данных.
-
-
CharArrayWriter:-
Предназначен для записи данных в массив символов, который может динамически увеличиваться.
-
Пример: использование в процессах, где необходима временная запись данных в память.
-
-
StringWriter:-
Предназначен для записи данных в строку.
-
Пример: создание строкового буфера для последующего использования в программе.
-
-
FilterWriter:-
Абстрактный класс для создания потоков, которые фильтруют данные, проходящие через них.
-
Пример: базовый класс для специализированных потоков записи, например, для шифрования данных перед записью.
-
-
OutputStreamWriter:-
Предназначен для записи символов в поток байтов с использованием указанной кодировки.
-
Пример: используется для преобразования символьных данных в байты для записи в файл или сетевой поток.
-
-
PrintWriter:-
Предназначен для удобной записи форматированного текста и данных в поток.
-
Пример: использование для записи текстовых данных в файл с возможностью форматирования вывода.
-
-
PipedWriter:-
Предназначен для записи данных в поток, который связан с
PipedReaderдля создания канала между потоками. -
Пример: межпотоковое взаимодействие, где один поток пишет данные, а другой поток читает их.
-
В чем отличие класса PrintWriter от PrintStream?
Отличие между классом PrintWriter и PrintStream заключается в том, что:
-
PrintWriter:-
Предназначен для записи символьных данных в поток.
-
Используется для удобного вывода текста с возможностью форматирования.
-
Оперирует с символами и позволяет указывать кодировку символов.
-
Унаследован от
Writer.
-
-
PrintStream:-
Предназначен для записи байтовых данных в поток.
-
Используется для вывода байтовых данных, также поддерживает форматирование.
-
Методы print и println преобразуют текст в байты с использованием кодировки. Кодировку PrintStream можно задать конструктором; низкоуровневый write работает с байтами.
-
Унаследован от
OutputStream.
-
Оба класса предоставляют схожие функциональные возможности для вывода данных, однако PrintWriter ориентирован на работу с символьными данными и предоставляет большую гибкость в отношении кодировки символов и форматирования текста. PrintStream, в свою очередь, работает на уровне байтов и может использоваться для вывода данных в бинарных форматах.
Какие методы класса File вы знаете?
Класс File в Java предоставляет следующие основные методы для работы с файлами и директориями:
-
Конструкторы:
-
File(String pathname): Создает объектFileдля указанного пути имени файла или директории. -
File(String parent, String child): Создает объектFileдля указанного родительского пути и дочернего имени файла или директории. -
File(File parent, String child): Создает объектFileдля указанного родительского объекта и дочернего имени файла или директории.
-
-
Методы для работы с путями:
-
getPath(): Возвращает путь к файлу или директории в виде строки. -
getAbsolutePath(): Возвращает абсолютный путь к файлу или директории в виде строки. -
getParent(): Возвращает родительский каталог файла или директории в виде строки. -
getName(): Возвращает имя файла или директории.
-
-
Методы для проверки типа объекта:
-
isFile(): Проверяет, является ли объект представлением файла. -
isDirectory(): Проверяет, является ли объект представлением директории. -
exists(): Проверяет, существует ли файл или директория.
-
-
Методы для работы с файлами и директориями:
-
createNewFile(): Создает новый файл, если он не существует. -
mkdir(): Создает новую директорию. -
delete(): Удаляет файл или директорию.
-
-
Методы для получения информации о файле или директории:
-
lastModified(): Возвращает время последней модификации файла в миллисекундах с начала эпохи. -
length(): Возвращает размер файла в байтах. -
canRead(): Проверяет, доступен ли файл для чтения. -
canWrite(): Проверяет, доступен ли файл для записи.
-
-
Другие методы:
-
renameTo(File dest): Переименовывает файл или директорию на указанный путьdest. -
listFiles(): Возвращает массив объектовFile, представляющих файлы и директории в текущей директории.
-