Класс Java FileOutputStream: подробное руководство
Класс Java FileOutputStream
Класс FileOutputStream из пакета java.io позволяет записывать сырые байтовые данные в файлы. Он расширяет абстрактный OutputStream и необходим для бинарных файловых операций.
Создание FileOutputStream
Импортируйте класс из java.io и инстанцируйте его путём к файлу или объектом File.
1. Использование пути к файлу
// С флагом append
FileOutputStream output = new FileOutputStream(String path, boolean append);
// Без флага append
FileOutputStream output = new FileOutputStream(String path);
Булев append определяет: добавлять данные в конец файла (true) или перезаписывать существующее содержимое (false).
2. Использование объекта File
FileOutputStream output = new FileOutputStream(File fileObject);
Этот конструктор связывает поток с файлом, представленным fileObject.
Ключевые методы FileOutputStream
FileOutputStream реализует несколько унаследованных методов из OutputStream для байтовых операций.
write()
write(int b)— записывает один байт.write(byte[] b)— записывает весь байтовый массив.write(byte[] b, int off, int len)— записываетlenбайт изbначиная со смещенияoff.
Пример: запись текста в файл
import java.io.FileOutputStream;
public class Main {
public static void main(String[] args) {
String data = "This is a line of text inside the file.";
try {
FileOutputStream output = new FileOutputStream("output.txt");
byte[] array = data.getBytes();
output.write(array);
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Запуск программы создаёт output.txt с приведённым выше предложением. Метод getBytes() преобразует строку в её UTF-8 байтовое представление.
flush()
Метод flush() принудительно сбрасывает буферизованные байты в файл немедленно. Полезен, когда нужно гарантировать сохранность данных перед закрытием потока.
import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
FileOutputStream out = new FileOutputStream("flush.txt");
String data = "This is demo of flush method";
out.write(data.getBytes());
out.flush();
out.close();
}
}
close()
После вызова close() поток больше не используется. Он освобождает системные ресурсы и гарантирует корректное закрытие файлового дескриптора.
Дополнительные методы FileOutputStream
| Метод | Описание |
|---|---|
finalize() | Вызывается сборщиком мусора для гарантии вызова close(). |
getChannel() | Возвращает связанный FileChannel для продвинутых файловых операций. |
getFD() | Получает базовый файловый дескриптор. |
Для глубокого изучения обратитесь к официальной документации Java FileOutputStream.
java
- Ключевое слово final в Java: переменные, методы и классы
- Оператор instanceof в Java: полное руководство с примерами
- Наследование в Java: концепции, типы и практические примеры
- Статические вложенные классы в Java: использование, отличия и примеры
- Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
- Паттерн Singleton в Java: как реализовать и безопасно использовать
- Рефлексия в Java: инспекция классов, методов и полей во время выполнения
- Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
- Освоение Java Generics: создание переиспользуемого, типобезопасного кода
- Мастерство файловых операций в Java с java.io: создание, чтение, запись и удаление