РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
875 of 1163 menu

Класс StandardOpenOption

Класс StandardOpenOption представляет собой перечисление (enum), которое описывает стандартные опции открытия файлов для методов класса Files и каналов ввода-вывода. Каждая константа этого перечисления указывает, каким образом файл должен быть открыт: только для чтения, только для записи, для чтения и записи, с созданием нового файла, с перезаписью существующего, с добавлением данных в конец и так далее. Опции можно комбинировать друг с другом, передавая их в метод в виде набора.

Синтаксис

StandardOpenOption.READ StandardOpenOption.WRITE StandardOpenOption.APPEND StandardOpenOption.TRUNCATE_EXISTING StandardOpenOption.CREATE StandardOpenOption.CREATE_NEW StandardOpenOption.DELETE_ON_CLOSE StandardOpenOption.SPARSE StandardOpenOption.SYNC StandardOpenOption.DSYNC

В первом параметре метода Files.newInputStream или Files.newOutputStream можно передать одну опцию или несколько опций сразу. Каждая константа определяет свое правило открытия файла.

Пример

Давайте откроем файл только для чтения с помощью опции READ:

import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardOpenOption; public class Main { public static void main(String[] args) throws IOException { Path path = Path.of("test.txt"); InputStream in = Files.newInputStream( path, StandardOpenOption.READ ); System.out.println("File opened for reading"); in.close(); } }

Результат выполнения кода:

"File opened for reading"

Пример

Давайте откроем файл для записи, создав его, если он не существует, и добавив данные в конец:

import java.io.IOException; import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardOpenOption; public class Main { public static void main(String[] args) throws IOException { Path path = Path.of("test.txt"); OutputStream out = Files.newOutputStream( path, StandardOpenOption.CREATE, StandardOpenOption.APPEND ); out.write("12345".getBytes()); out.close(); System.out.println("Data appended"); } }

Результат выполнения кода:

"Data appended"

Пример

Давайте откроем файл для чтения и записи одновременно, используя комбинацию опций READ и WRITE:

import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.SeekableByteChannel; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardOpenOption; public class Main { public static void main(String[] args) throws IOException { Path path = Path.of("test.txt"); SeekableByteChannel channel = Files.newByteChannel( path, StandardOpenOption.READ, StandardOpenOption.WRITE ); ByteBuffer buffer = ByteBuffer.allocate(5); channel.read(buffer); buffer.flip(); System.out.println("Read bytes: " + buffer.remaining()); channel.close(); } }

Результат выполнения кода:

"Read bytes: 5"

Смотрите также

  • класс FileInputStream,
    который читает байты из файла
  • класс FileOutputStream,
    который записывает байты в файл
  • класс InputStream,
    который представляет поток ввода
  • класс StandardCharsets,
    который содержит стандартные кодировки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить