English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированное на объекты (I)

Java Ориентированное на объекты (II)

Java Ориентированное на объекты (III)

Обработка исключений Java

Java Списки (List)

Java Квэи (Queue)

Java Мапы (Map)

Java Множества (Set)

Java Ввод/вывод (I/O)

Java Reader/Writer

Другие темы Java

Класс FileOutputStream Java

В этом руководстве мы будем изучать Java FileOutputStream и его методы с помощью примеров.

Класс FileOutputStream из пакета java.io может использоваться для записи данных (в виде байтов) в файл.

Он наследуется от абстрактного класса OutputStream.

Перед изучением FileOutputStream, пожалуйста, убедитесь, что вы понимаетеJava файл.

Создание FileOutputStream

Чтобы создать поток вывода файла,我们必须 сначала импортировать пакет java.io.FileOutputStream. После импорта пакета можно использовать Java для создания потока вывода файла.

1. Использование пути к файлу

// С параметром boolean
FileOutputStream output = new FileOutputStream(String path, boolean value);
// Без параметра boolean
FileOutputStream output = new FileOutputStream(String path);

Здесь мы создаем поток вывода, который будет связан с указанным путем к файлу.

Кроме того, значение параметра value является опционным булевым значением. Если его установить в true, то новые данные будут добавлены в конец существующих данных файла. В противном случае, новые данные заменят существующие данные в файле.

2. Использование объекта файла

FileOutputStream output = new FileOutputStream(File fileObject);

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

Методы FileOutputStream

Класс FileOutputStream предоставляет реализации различных методов,出现的OutputStream.

Метод write()

  • write() - Записывает один байт в поток вывода byte

  • write(byte[] array) - Записывает байты из заданного массива в поток вывода

  • write(byte[] array, int start, int length) - Записывает из массива байтов с начала start и длиной length

Пример: Запись данных в файл с помощью FileOutputStream

import java.io.FileOutputStream;
public class Main {
    public static void main(String[] args) {
        
        String data = "Это строка текста в файле.";
        try {
            FileOutputStream output = new FileOutputStream("output.txt");
            byte[] array = data.getBytes();
            //Записать байты в файл
            output.write(array);
            output.close();
        }
        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

В предыдущем примере мы создали файловый поток output.output.txtСсылка.

FileOutputStream output = new FileOutputStream("output.txt");

Чтобы записать данные в файл, мы используем метод write().

Здесь, когда мы запускаем программу:output.txtФайл будет записан с содержимым:

Это строка текста в файле.

Внимание:В программе используется метод getBytes() для преобразования строки в массив байтов.

Метод flush()

Чтобы очистить поток вывода, можно использовать метод flush(). Этот метод принудительно записывает все данные в целевую среду. Например:

import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
    public static void main(String[] args) throws IOException {
        FileOutputStream out = null;
        String data = "这是flush方法的演示";
        try {
            out = new FileOutputStream("flush.txt");
            //использование метода write()
            out.write(data.getBytes());
            //использование метода flush()
            out.flush();
            out.close();
        }
        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

когда мы запускаем программу, файлflush.txtнасыщен текстом, представленным строкой data.

метод close()

чтобы закрыть поток ввода-вывода файла, можно использовать метод close(). После вызова этого метода мы не можем использовать методы FileOutputStream.

другие методы FileOutputStream

методописание содержимого
finalize()обеспечьте вызов метода close()
getChannel()возврат объекта FileChannel, связанного с потоком ввода-вывода
getFD()возврат файлового описателя, связанного с потоком ввода-вывода