Шаг 109.
Язык программирования Java.
Класс Files. Функции для чтения из файла и записи в файл

На этом шаге мы рассмотрим функции для чтения и записи

В классе Files также есть функции для чтения и записи. Рассмотрим каждые из них.

Функции для чтения из файла следующие:

Функции для записи в файл следующие:

Отметим, что если path во всех функциях для чтения не имеет разрешения на чтение, то будет брошено исключение. Поэтому перед тем как читать из файла, нужно выполнить проверку на чтение из файла доступно, воспользовавшись функцией isReadable() класса Files.

Отметим, что если path во всех функциях для записи не имеет разрешения на запись, то будет брошено исключение. Поэтому перед тем как писать в файл, нужно выполнить проверку на запись в файл доступно, воспользовавшись функцией isWritable() класса Files.


Приведем ниже пример программы, использующую рассмотренные выше функции.


import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;

public class Main {
    public static final int N = 10;

    public static void main(String[] args) throws IOException {
        Path rootDir = Paths.get("");

        /*Создаем временный файл*/
        Path file = Files.createTempFile(rootDir, "tmp", ".txt");
        System.out.println("Файл " + file + " создан");

        /*Запишем в созданный файл 10 строк*/
        System.out.println("\nЗапись строк в файл " + file);
        for (int i = 0; i < N; i++) {
            String testString = "test string " + i + "\n";
            System.out.println("\tСтрока " + testString.trim() + " записана");
            /*
 Без параметра StandardOpenOption.APPEND функция write будет полностью перезаписывать
 файл и в результате после выполнения цикла будет записана только последняя строка.
 Поэтому мы используем параметр StandardOpenOption.APPEND для того чтобы записались 
 все строки. 
            */
            Files.write(file, testString.getBytes(), StandardOpenOption.APPEND);
        }

        /*Читаем все строки из файла и выводим их на экран*/
        System.out.println("\nЧтение строк из файла " + file);
        for (String line : Files.readAllLines(file)) {
            System.out.println("\tПрочитана строка: " + line);
        }

        /*Удаляем созданный файл*/
        Files.deleteIfExists(file);
        System.out.println("\nФайл " + file + " удален");
    }
}

Проект можно взять здесь


Рис. 1. Вывод программы


На следующем шаге мы продолжим изучение класса Files

Предыдущий шаг Содержание Следующий шаг