Класс FileOutputStream
Класс FileOutputStream наследуется от абстрактного класса
OutputStream и используется для записи сырых байтов
в файл. В первый параметр конструктора мы передаем объект
File или строку с путем к файлу, во второй
(необязательный) - флаг append типа boolean.
Если флаг равен true, данные дописываются в конец файла,
если false или параметр не указан - файл перезаписывается
с нуля. Если файла не существует, он будет создан автоматически.
После завершения работы поток необходимо закрыть методом
close.
Синтаксис
new FileOutputStream(String name)
new FileOutputStream(String name, boolean append)
new FileOutputStream(File file)
new FileOutputStream(File file, boolean append)
Основные методы
Класс FileOutputStream предоставляет следующие методы:
write - записывает один байт или массив байтов в поток;
flush - принудительно сбрасывает буферизованные данные в файл;
close - закрывает поток и освобождает ресурсы.
Пример
Давайте запишем строку "abcde" в файл test.txt:
import java.io.FileOutputStream;
import java.io.IOException;
public class Main
{
public static void main(String[] args)
{
try (FileOutputStream fos = new FileOutputStream("test.txt"))
{
String str = "abcde";
fos.write(str.getBytes());
System.out.println("Done");
}
catch (IOException e)
{
System.out.println("Error: " + e.getMessage());
}
}
}
Результат выполнения кода:
"Done"
Пример
Давайте допишем строку "12345" в конец уже
существующего файла, передав вторым параметром
true:
import java.io.FileOutputStream;
import java.io.IOException;
public class Main
{
public static void main(String[] args)
{
try (FileOutputStream fos = new FileOutputStream("test.txt", true))
{
String str = "12345";
fos.write(str.getBytes());
System.out.println("Appended");
}
catch (IOException e)
{
System.out.println("Error: " + e.getMessage());
}
}
}
Результат выполнения кода:
"Appended"
Пример
Давайте запишем в файл массив байтов, полученный из числовых значений:
import java.io.FileOutputStream;
import java.io.IOException;
public class Main
{
public static void main(String[] args)
{
try (FileOutputStream fos = new FileOutputStream("data.bin"))
{
byte[] data = {1, 2, 3, 4, 5};
fos.write(data);
fos.flush();
System.out.println("Written");
}
catch (IOException e)
{
System.out.println("Error: " + e.getMessage());
}
}
}
Результат выполнения кода:
"Written"
Смотрите также
-
класс
FileInputStream,
который читает байты из файла -
класс
OutputStream,
базовый класс для всех байтовых потоков вывода -
метод
write,
который записывает байты в поток -
метод
close,
который закрывает поток вывода