Spec-Zone.ru › OpenJDK 27

Класс FileOutputStream

java.lang.Object
java.io.OutputStream
java.io.FileOutputStream
Все реализуемые интерфейсы:
Closeable, Flushable, AutoCloseable
public class FileOutputStream extends OutputStream
Поток вывода в файл — это поток вывода для записи данных в File или в FileDescriptor. Доступность файла и возможность его создания зависят от используемой платформы. Некоторые платформы, в частности, позволяют открывать файл для записи только одному FileOutputStream (или другому объекту для записи в файл) одновременно. В таких случаях конструкторы этого класса завершаются с ошибкой, если соответствующий файл уже открыт.

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

Примечание API:
Для освобождения ресурсов, используемых этим потоком, следует вызвать метод close() напрямую или использовать оператор try-with-resources.
Требования к реализации:
Подклассы отвечают за очистку ресурсов, полученных подклассом. Подклассам, которым необходимо выполнять очистку ресурсов после того, как поток станет недостижимым, следует использовать Cleaner или другой механизм.
С версии:
1.0
См. также:
  • File
  • FileDescriptor
  • FileInputStream
  • Files.newOutputStream(Path, OpenOption...)

Краткое описание конструкторов

Конструктор Описание
FileOutputStream(File file)
Создает поток вывода в файл для записи в файл, представленный указанным объектом File.
FileOutputStream(FileDescriptor fdObj)
Создает поток вывода в файл для записи в указанный дескриптор файла, представляющий существующее соединение с реальным файлом в файловой системе.
FileOutputStream(File file, boolean append)
Создает поток вывода в файл для записи в файл, представленный указанным объектом File.
FileOutputStream(String name)
Создает поток вывода в файл для записи в файл с указанным именем.
FileOutputStream(String name, boolean append)
Создает поток вывода в файл для записи в файл с указанным именем.

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрывает этот поток вывода в файл и освобождает все системные ресурсы, связанные с этим потоком.
FileChannel getChannel()
Возвращает уникальный объект FileChannel, связанный с этим потоком вывода в файл.
final FileDescriptor getFD()
Возвращает дескриптор файла, связанный с этим потоком.
void write(byte[] b)
Записывает b.length байтов из указанного массива байтов в этот поток вывода в файл.
void write(byte[] b, int off, int len)
Записывает len байтов из указанного массива байтов, начиная со смещения off, в этот поток вывода в файл.
void write(int b)
Записывает указанный байт в этот поток вывода в файл.

Методы, объявленные в классе OutputStream

flush, nullOutputStream
Модификатор и тип Метод Описание
void flush()
Сбрасывает этот поток вывода и принудительно записывает все буферизованные выходные байты.
static OutputStream nullOutputStream()
Возвращает новый OutputStream, отбрасывающий все байты.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли какой-либо другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс среды выполнения этого Object.
int hashCode()
Возвращает значение хеш-кода для этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать до тех пор, пока он не будет пробужден, обычно в результате вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать до тех пор, пока он не будет пробужден, обычно в результате вызова notify или прерывания, либо пока не пройдет определенное время.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать до тех пор, пока он не будет пробужден, обычно в результате вызова notify или прерывания, либо пока не пройдет определенное время.

Подробное описание конструкторов

FileOutputStream

public FileOutputStream(String name) throws FileNotFoundException
Создает поток вывода в файл для записи в файл с указанным именем. Если файл существует, его содержимое усекается, иначе создается новый файл. Символические ссылки автоматически перенаправляются на целевой объект ссылки. Для представления этого файлового соединения создается новый объект FileDescriptor.

Если файл существует, но является каталогом, а не обычным файлом, не существует и не может быть создан или не может быть открыт по какой-либо другой причине, выбрасывается FileNotFoundException.

Требования к реализации:
Вызов этого конструктора с параметром name эквивалентен вызову new FileOutputStream(name, false).
Параметры:
name — имя файла, зависящее от системы
Исключения:
FileNotFoundException — если файл существует, но является каталогом, а не обычным файлом, не существует и не может быть создан или не может быть открыт по какой-либо другой причине

FileOutputStream

public FileOutputStream(String name, boolean append) throws FileNotFoundException
Создает поток вывода в файл для записи в файл с указанным именем. Если файл существует, его содержимое усекается, если только второй аргумент не равен true; в этом случае байты будут записываться в конец файла, а не в его начало. Если файл не существует, он создается. Символические ссылки автоматически перенаправляются на целевой объект ссылки. Для представления этого файлового соединения создается новый объект FileDescriptor.

Если файл существует, но является каталогом, а не обычным файлом, не существует и не может быть создан или не может быть открыт по какой-либо другой причине, выбрасывается FileNotFoundException.

Параметры:
name — имя файла, зависящее от системы
append — если true, байты будут записываться в конец файла, а не в его начало
Исключения:
FileNotFoundException — если файл существует, но является каталогом, а не обычным файлом, не существует и не может быть создан или не может быть открыт по какой-либо другой причине.
С версии:
1.1

FileOutputStream

public FileOutputStream(File file) throws FileNotFoundException
Создает поток вывода в файл для записи в файл, представленный указанным объектом File. Если файл существует, его содержимое усекается, иначе создается новый файл. Символические ссылки автоматически перенаправляются на целевой объект ссылки. Для представления этого файлового соединения создается новый объект FileDescriptor.

Если файл существует, но является каталогом, а не обычным файлом, не существует и не может быть создан или не может быть открыт по какой-либо другой причине, выбрасывается FileNotFoundException.

Параметры:
file — файл, который следует открыть для записи.
Исключения:
FileNotFoundException — если файл существует, но является каталогом, а не обычным файлом, не существует и не может быть создан или не может быть открыт по какой-либо другой причине
См. также:
  • File.getPath()

FileOutputStream

public FileOutputStream(File file, boolean append) throws FileNotFoundException
Создает поток вывода в файл для записи в файл, представленный указанным объектом File. Если файл существует, его содержимое усекается, если только второй аргумент не равен true; в этом случае байты будут записываться в конец файла, а не в его начало. Если файл не существует, он создается. Символические ссылки автоматически перенаправляются на целевой объект ссылки. Для представления этого файлового соединения создается новый объект FileDescriptor.

Если файл существует, но является каталогом, а не обычным файлом, не существует и не может быть создан или не может быть открыт по какой-либо другой причине, выбрасывается FileNotFoundException.

Параметры:
file — файл, который следует открыть для записи.
append — если true, байты будут записываться в конец файла, а не в его начало
Исключения:
FileNotFoundException — если файл существует, но является каталогом, а не обычным файлом, не существует и не может быть создан или не может быть открыт по какой-либо другой причине
С версии:
1.4
См. также:
  • File.getPath()

FileOutputStream

public FileOutputStream(FileDescriptor fdObj)
Создает поток вывода в файл для записи в указанный дескриптор файла, представляющий существующее соединение с реальным файлом в файловой системе.

Если fdObj равен null, выбрасывается NullPointerException.

Этот конструктор не выбрасывает исключение, если fdObj является invalid. Однако при вызове методов результирующего потока для выполнения операций ввода-вывода в потоке выбрасывается IOException.

Параметры:
fdObj — дескриптор файла, который следует открыть для записи

Подробное описание методов

write

public void write(int b) throws IOException
Записывает указанный байт в этот поток вывода в файл. Реализует метод write класса OutputStream.
Определено в:
write в классе OutputStream
Параметры:
b — байт для записи.
Исключения:
IOException — при возникновении ошибки ввода-вывода.

write

public void write(byte[] b) throws IOException
Записывает b.length байтов из указанного массива байтов в этот поток вывода в файл.
Переопределяет:
write в классе OutputStream
Параметры:
b — данные.
Исключения:
IOException — при возникновении ошибки ввода-вывода.
См. также:
  • OutputStream.write(byte[], int, int)

write

public void write(byte[] b, int off, int len) throws IOException
Записывает len байтов из указанного массива байтов, начиная со смещения off, в этот поток вывода в файл.
Переопределяет:
write в классе OutputStream
Параметры:
b — данные.
off — начальное смещение в данных.
len — количество байтов для записи.
Исключения:
IOException — при возникновении ошибки ввода-вывода.
IndexOutOfBoundsException — если off отрицательно, len отрицательно или len больше b.length - off

close

public void close() throws IOException
Закрывает этот поток вывода в файл и освобождает все системные ресурсы, связанные с этим потоком. Этот поток вывода в файл больше нельзя использовать для записи байтов.

Если с этим потоком связан канал, он также закрывается.

Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Переопределяет:
close в классе OutputStream
Примечание API:
Переопределение close() для выполнения очистки надежно работает только при прямом вызове или при вызове с помощью try-with-resources.
Требования к реализации:
Подклассам, которым необходимо выполнять очистку ресурсов после того, как поток станет недостижимым, следует использовать механизм Cleaner.

Если с этим потоком связан канал, этот метод закроет канал, что, в свою очередь, закроет данный поток. Подклассы, переопределяющие этот метод, должны быть готовы к возможному повторному входу в него.

Исключения:
IOException — при возникновении ошибки ввода-вывода.

getFD

public final FileDescriptor getFD() throws IOException
Возвращает дескриптор файла, связанный с этим потоком.
Возвращает:
объект FileDescriptor, представляющий соединение с файлом в файловой системе, используемое этим объектом FileOutputStream.
Исключения:
IOException — при возникновении ошибки ввода-вывода.
См. также:
  • FileDescriptor

getChannel

public FileChannel getChannel()
Возвращает уникальный объект FileChannel, связанный с этим потоком вывода в файл.

Начальная position возвращаемого канала будет равна количеству байтов, уже записанных в файл, если только этот поток не работает в режиме добавления; в этом случае она будет равна размеру файла. Запись байтов в этот поток соответствующим образом увеличивает позицию канала. Изменение позиции канала — явно или посредством записи — изменяет позицию файла этого потока.

Возвращает:
канал файла, связанный с этим потоком вывода в файл
С версии:
1.4

Сообщить об ошибке или предложить улучшение
Дополнительные справочные сведения по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API