Перейти к содержимому
шпаргалка.
Esc
навигацияоткрыть⌘Jпредпросмотр
На этой странице

Типы потоков вывода

Все темы Java Developer

Какие подклассы класса OutputStream вы знаете, для чего они предназначены?

Основные подклассы класса OutputStream и их предназначение:

  1. FileOutputStream:

    • Предназначен для записи байтов в файл.

    • Пример: запись данных в текстовые или бинарные файлы.

  2. ByteArrayOutputStream:

    • Предназначен для записи байтов в массив байтов, который увеличивается по мере необходимости.

    • Пример: создание буфера для данных перед их окончательной обработкой или отправкой.

  3. FilterOutputStream:

    • Абстрактный класс, предназначенный для создания потоков, которые фильтруют данные, проходящие через них.

    • Пример: базовый класс для других потоков, таких как BufferedOutputStream и DataOutputStream.

  4. BufferedOutputStream:

    • Предназначен для буферизации выходных байтов, что улучшает производительность за счет уменьшения количества операций записи.

    • Пример: используется для эффективной записи больших объемов данных.

  5. DataOutputStream:

    • Предназначен для записи примитивных типов данных (int, float и т.д.) в поток в формате, независимом от платформы.

    • Пример: запись данных в бинарном формате для последующего чтения DataInputStream.

  6. PrintStream:

    • Предназначен для удобной записи форматированного текста и данных в поток.

    • Пример: используется для записи данных в консоль (System.out является экземпляром PrintStream) или в файл с форматированием.


Какие подклассы класса Reader вы знаете, для чего они предназначены?

Основные подклассы класса Reader и их предназначение:

  1. FileReader:

    • Предназначен для чтения текстовых файлов.

    • Пример: используется для чтения содержимого текстового файла в виде символов.

  2. BufferedReader:

    • Предназначен для буферизированного чтения текста, что улучшает производительность.

    • Пример: чтение текста построчно с использованием метода readLine().

  3. CharArrayReader:

    • Предназначен для чтения данных из массива символов.

    • Пример: используется для чтения данных из уже существующего массива символов в памяти.

  4. StringReader:

    • Предназначен для чтения данных из строки.

    • Пример: используется для чтения символов из строки, как если бы она была потоком ввода.

  5. FilterReader :
    • Абстрактный класс для создания потоков, которые фильтруют данные, проходящие через них.

    • Пример: базовый класс для других специализированных потоков чтения.

  6. InputStreamReader:

    • Предназначен для преобразования байтового потока в поток символов, используя указанный кодек.

    • Пример: используется для чтения данных из байтового потока, таких как FileInputStream, с заданной кодировкой.

  7. PipedReader:

    • Предназначен для чтения данных из потока, который подключен к PipedWriter.

    • Пример: используется для межпоточного взаимодействия, где один поток записывает данные, а другой читает их.


Какие подклассы класса Writer вы знаете, для чего они предназначены?

Основные подклассы класса Writer и их предназначение:

  1. FileWriter:

    • Предназначен для записи текстовых данных в файл.

    • Пример: использование для сохранения текстовой информации в файл.

  2. BufferedWriter:

    • Предназначен для буферизированной записи текста, что улучшает производительность за счет снижения частоты операций записи.

    • Пример: эффективная запись больших объемов текстовых данных.

  3. CharArrayWriter:

    • Предназначен для записи данных в массив символов, который может динамически увеличиваться.

    • Пример: использование в процессах, где необходима временная запись данных в память.

  4. StringWriter:

    • Предназначен для записи данных в строку.

    • Пример: создание строкового буфера для последующего использования в программе.

  5. FilterWriter:

    • Абстрактный класс для создания потоков, которые фильтруют данные, проходящие через них.

    • Пример: базовый класс для специализированных потоков записи, например, для шифрования данных перед записью.

  6. OutputStreamWriter:

    • Предназначен для записи символов в поток байтов с использованием указанной кодировки.

    • Пример: используется для преобразования символьных данных в байты для записи в файл или сетевой поток.

  7. PrintWriter:

    • Предназначен для удобной записи форматированного текста и данных в поток.

    • Пример: использование для записи текстовых данных в файл с возможностью форматирования вывода.

  8. PipedWriter:

    • Предназначен для записи данных в поток, который связан с PipedReader для создания канала между потоками.

    • Пример: межпотоковое взаимодействие, где один поток пишет данные, а другой поток читает их.


В чем отличие класса PrintWriter от PrintStream?

Отличие между классом PrintWriter и PrintStream заключается в том, что:

  1. PrintWriter:

    • Предназначен для записи символьных данных в поток.

    • Используется для удобного вывода текста с возможностью форматирования.

    • Оперирует с символами и позволяет указывать кодировку символов.

    • Унаследован от Writer.

  2. PrintStream:

    • Предназначен для записи байтовых данных в поток.

    • Используется для вывода байтовых данных, также поддерживает форматирование.

    • Методы print и println преобразуют текст в байты с использованием кодировки. Кодировку PrintStream можно задать конструктором; низкоуровневый write работает с байтами.

    • Унаследован от OutputStream.

Оба класса предоставляют схожие функциональные возможности для вывода данных, однако PrintWriter ориентирован на работу с символьными данными и предоставляет большую гибкость в отношении кодировки символов и форматирования текста. PrintStream, в свою очередь, работает на уровне байтов и может использоваться для вывода данных в бинарных форматах.


Какие методы класса File вы знаете?

Класс File в Java предоставляет следующие основные методы для работы с файлами и директориями:

  1. Конструкторы:

    • File(String pathname): Создает объект File для указанного пути имени файла или директории.

    • File(String parent, String child): Создает объект File для указанного родительского пути и дочернего имени файла или директории.

    • File(File parent, String child): Создает объект File для указанного родительского объекта и дочернего имени файла или директории.

  2. Методы для работы с путями:

    • getPath(): Возвращает путь к файлу или директории в виде строки.

    • getAbsolutePath(): Возвращает абсолютный путь к файлу или директории в виде строки.

    • getParent(): Возвращает родительский каталог файла или директории в виде строки.

    • getName(): Возвращает имя файла или директории.

  3. Методы для проверки типа объекта:

    • isFile(): Проверяет, является ли объект представлением файла.

    • isDirectory(): Проверяет, является ли объект представлением директории.

    • exists(): Проверяет, существует ли файл или директория.

  4. Методы для работы с файлами и директориями:

    • createNewFile(): Создает новый файл, если он не существует.

    • mkdir(): Создает новую директорию.

    • delete(): Удаляет файл или директорию.

  5. Методы для получения информации о файле или директории:

    • lastModified(): Возвращает время последней модификации файла в миллисекундах с начала эпохи.

    • length(): Возвращает размер файла в байтах.

    • canRead(): Проверяет, доступен ли файл для чтения.

    • canWrite(): Проверяет, доступен ли файл для записи.

  6. Другие методы:

    • renameTo(File dest): Переименовывает файл или директорию на указанный путь dest.

    • listFiles(): Возвращает массив объектов File, представляющих файлы и директории в текущей директории.

Эта страница была полезной?