Класс 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. Подклассы отвечают за очистку ресурсов, полученных подклассом. Подклассы, которые переопределяютfinalize()для выполнения очистки, должны быть изменены для использования альтернативных механизмов очистки, таких какCleaner, и удалить переопределяемыйfinalizeметод. - Требования к реализации:
- Если этот FileOutputStream был подклассифицирован и метод
close()был переопределён, методclose()будет вызван, когда FileInputStream недоступен. В противном случае, способ очистки ресурсов, описанный вclose(), зависит от реализации. - С:
- 1.0
- См. также:
-
File,FileDescriptor,FileInputStream,Files.newOutputStream(java.nio.file.Path, java.nio.file.OpenOption...)
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
FileOutputStream(File file) | Создаёт поток вывода файла для записи в файл, представленный указанным объектом |
FileOutputStream(FileDescriptor fdObj) | Создаёт поток вывода файла для записи в указанный дескриптор файла, который представляет собой существующее подключение к фактическому файлу в файловой системе. |
FileOutputStream(File file,
boolean append) | Создаёт поток вывода файла для записи в файл, представленный указанным объектом |
FileOutputStream(String name) | Создаёт поток вывода файла для записи в файл с указанным именем. |
FileOutputStream(String name,
boolean append) | Создаёт поток вывода файла для записи в файл с указанным именем. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | close() | Закрывает этот поток вывода файла и освобождает все системные ресурсы, связанные с этим потоком. |
protected void | finalize() | Устаревший, для удаления: Этот элемент API подлежит удалению в будущей версии. Метод finalize устарел и будет удалён. |
FileChannel | getChannel() | Возвращает уникальный объект |
FileDescriptor | getFD() | Возвращает дескриптор файла, связанный с этим потоком. |
void | write(byte[] b) | Записывает |
void | write(byte[] b,
int off,
int len) | Записывает |
void | write(int b) | Записывает указанный байт в этот поток вывода файла. |
Методы, объявленные в классе java.io.OutputStream
flush, nullOutputStream Методы, объявленные в классе java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
FileOutputStream
public FileOutputStream(String name)
throws FileNotFoundException Создает поток вывода в файл с указанным именем. Новый объект FileDescriptor создается для представления этого подключения к файлу.
Сначала, если существует менеджер безопасности, вызывается его метод checkWrite с аргументом name.
Если файл существует, но является каталогом, а не обычным файлом, не существует, но не может быть создан или не может быть открыт по какой-либо другой причине, то будет брошено исключение FileNotFoundException.
- Требования к реализации:
- Вызов этого конструктора с параметром
nameэквивалентен вызовуnew FileOutputStream(name, false). - Параметры:
-
name- имя файла, зависящее от системы - Исключения:
-
FileNotFoundException- если файл существует, но является каталогом, а не обычным файлом, не существует, но не может быть создан или не может быть открыт по какой-либо другой причине -
SecurityException- если менеджер безопасности существует и его методcheckWriteзапрещает доступ для записи в файл. - См. также:
SecurityManager.checkWrite(java.lang.String)
FileOutputStream
public FileOutputStream(String name,
boolean append)
throws FileNotFoundException Создает поток вывода в файл с указанным именем. Если второй аргумент true, байты будут записаны в конец файла, а не в начало. Новый объект FileDescriptor создается для представления этого подключения к файлу.
Сначала, если существует менеджер безопасности, вызывается его метод checkWrite с аргументом name.
Если файл существует, но является каталогом, а не обычным файлом, не существует, но не может быть создан или не может быть открыт по какой-либо другой причине, то будет брошено исключение FileNotFoundException.
- Параметры:
-
name- имя файла, зависящее от системы -
append- еслиtrue, байты будут записаны в конец файла, а не в начало - Исключения:
-
FileNotFoundException- если файл существует, но является каталогом, а не обычным файлом, не существует, но не может быть создан или не может быть открыт по какой-либо другой причине. -
SecurityException- если менеджер безопасности существует и его методcheckWriteзапрещает доступ для записи в файл. - С:
- 1.1
- См. также:
SecurityManager.checkWrite(java.lang.String)
FileOutputStream
public FileOutputStream(File file)
throws FileNotFoundException Создает поток вывода в файл, представленный указанным объектом File. Новый объект FileDescriptor создается для представления этого подключения к файлу.
Сначала, если существует менеджер безопасности, вызывается его метод checkWrite с путем, представленным аргументом file, в качестве аргумента.
Если файл существует, но является каталогом, а не обычным файлом, не существует, но не может быть создан или не может быть открыт по какой-либо другой причине, то будет брошено исключение FileNotFoundException.
- Параметры:
-
file- файл, который должен быть открыт для записи. - Исключения:
-
FileNotFoundException- если файл существует, но является каталогом, а не обычным файлом, не существует, но не может быть создан или не может быть открыт по какой-либо другой причине -
SecurityException- если менеджер безопасности существует и его методcheckWriteзапрещает доступ для записи в файл. - См. также:
-
File.getPath(),SecurityException,SecurityManager.checkWrite(java.lang.String)
FileOutputStream
public FileOutputStream(File file,
boolean append)
throws FileNotFoundException Создает поток вывода в файл, представленный указанным объектом File . Если второй аргумент true, байты будут записаны в конец файла, а не в начало. Новый объект FileDescriptor создается для представления этого подключения к файлу.
Сначала, если существует менеджер безопасности, вызывается его метод checkWrite с путем, представленным аргументом file, в качестве аргумента.
Если файл существует, но является каталогом, а не обычным файлом, не существует, но не может быть создан или не может быть открыт по какой-либо другой причине, то будет брошено исключение FileNotFoundException.
- Параметры:
-
file- файл, который должен быть открыт для записи. -
append- еслиtrue, байты будут записаны в конец файла, а не в начало - Исключения:
-
FileNotFoundException- если файл существует, но является каталогом, а не обычным файлом, не существует, но не может быть создан или не может быть открыт по какой-либо другой причине -
SecurityException- если менеджер безопасности существует и его методcheckWriteзапрещает доступ для записи в файл. - С:
- 1.4
- См. также:
-
File.getPath(),SecurityException,SecurityManager.checkWrite(java.lang.String)
FileOutputStream
public FileOutputStream(FileDescriptor fdObj)
Создает поток вывода в указанный дескриптор файла, который представляет существующее подключение к фактическому файлу в файловой системе.
Сначала, если существует менеджер безопасности, вызывается его метод checkWrite с аргументом дескриптора файла fdObj.
Если fdObj равно null, то будет брошено исключение NullPointerException.
Этот конструктор не генерирует исключение, если fdObj является invalid. Однако, если методы вызываются на результирующем потоке для попытки ввода-вывода в потоке, будет брошено исключение IOException.
- Параметры:
-
fdObj- дескриптор файла, который должен быть открыт для записи - Исключения:
-
SecurityException- если менеджер безопасности существует и его методcheckWriteзапрещает доступ для записи в дескриптор файла - См. также:
SecurityManager.checkWrite(java.io.FileDescriptor)
Методы
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- если произошла ошибка ввода-вывода.
close
public void close()
throws IOException Закрывает этот поток вывода файла и освобождает все системные ресурсы, связанные с этим потоком. Этот поток вывода файла больше не может использоваться для записи байтов.
Если у этого потока есть связанный канал, то канал также закрывается.
- Определено:
-
closeв интерфейсеAutoCloseable - Определено:
-
closeв интерфейсеCloseable - Переопределяет:
-
closeв классеOutputStream - Примечание API:
- Переопределение
close()для выполнения действий по очистке надежно только при вызове непосредственно или при вызове с помощью try-with-resources. Не полагайтесь на финализацию для вызоваclose; финализация ненадёжна и устарела. Если требуется очистка нативных ресурсов, следует использовать другие механизмы, такие как Cleaner. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
getFD
public final FileDescriptor getFD()
throws IOException Возвращает дескриптор файла, связанный с этим потоком.
- Возвращает:
- объект
FileDescriptor, который представляет соединение с файлом в файловой системе, используемой этим объектомFileOutputStream. - Исключения:
-
IOException- если произошла ошибка ввода-вывода. - См. также:
FileDescriptor
getChannel
public FileChannel getChannel()
Возвращает уникальный объект FileChannel, связанный с этим потоком вывода файла.
Начальное значение position возвращаемого канала будет равно количеству байтов, записанных в файл до этого момента, за исключением случаев, когда этот поток находится в режиме добавления, в этом случае оно будет равно размеру файла. Запись байтов в этот поток будет соответственно увеличивать позицию канала. Изменение позиции канала, явное или путем записи, изменит позицию файла этого потока.
- Возвращает:
- канал файла, связанный с этим потоком вывода файла
- С:
- 1.4
finalize
@Deprecated(since="9",
forRemoval=true)
protected void finalize()
throws IOException finalize устарел и будет удален. Подклассы, которые переопределяют finalize для выполнения задач очистки, должны быть изменены для использования альтернативных механизмов очистки и удаления переопределенного метода finalize. При переопределении метода finalize, его реализация должна явно гарантировать, что super.finalize() вызывается, как описано в Object.finalize(). См. спецификацию для Object.finalize() для получения дополнительной информации о вариантах миграции.Очищает соединение с файлом и гарантирует, что метод close() этого потока вывода файла вызывается, когда на этот поток больше нет ссылок. Метод finalize() не вызывает напрямую метод close().
- Переопределяет:
-
finalizeв классеObject - Примечание API:
- Для освобождения ресурсов, используемых этим потоком, следует вызвать
close()непосредственно или с помощью try-with-resources. - Требования к реализации:
- Если класс FileOutputStream был расширен, а метод
close()был переопределен, методclose()будет вызван, когда FileOutputStream недоступен. В противном случае, способ очистки ресурса, описанного вclose(), является специфичным для реализации. - Исключения:
-
IOException- если произошла ошибка ввода-вывода. - См. также:
FileInputStream.close()
© 1993, 2020, 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/FileOutputStream.html