Введение
В этом практическом занятии мы научимся записывать данные в файл с использованием языка программирования Java. Запись данных в файл может быть очень полезной, когда необходимо сохранить данные, сгенерированные вашей программой, для дальнейшего использования.
Открыть/создать файл
Первым шагом является открытие или создание файла, в который мы хотим записать данные. Мы создадим новый файл с именем output.txt в директории ~/project.
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
Path path = Paths.get("~/project/output.txt");
}
}
Записать строку в файл
Теперь, когда у нас открыт файл, мы можем записать в него строку. Это делается с использованием метода Files.write().
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
public class Main {
public static void main(String[] args) throws IOException {
Path path = Paths.get("~/project/output.txt");
String content = "This is some text that we want to write to the file";
Files.write(path, content.getBytes());
}
}
Здесь мы записываем строку в файл, конвертируя ее в байты и передавая их методу Files.write(). Обратите внимание, что нам нужно использовать метод getBytes(), чтобы преобразовать строку в байты.
Для запуска кода выше в терминале сначала нужно перейти в директорию вашего проекта в терминале. Затем выполните следующую команду:
javac Main.java && java Main
Записать список строк в файл
Мы также можем записать список строк в файл с использованием метода Files.write(), как показано ниже:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) throws IOException {
Path path = Paths.get("~/project/output.txt");
List<String> lines = Arrays.asList("This is line 1", "This is line 2", "This is line 3");
Files.write(path, lines, StandardCharsets.UTF_8);
}
}
Здесь мы записываем список строк в файл. Обратите внимание, что мы используем перегруженную версию метода Files.write(), которая принимает список строк в качестве параметра.
Для выполнения кода выше для записи списка строк в файл сначала нужно перейти в директорию вашего проекта в терминале. Затем выполните следующую команду:
javac Main.java && java Main
Добавить в файл
Если вы хотите записывать данные в файл, не перезаписывая существующие данные в нем, вы можете использовать параметр StandardOpenOption.APPEND при открытии файла. Это добавит любые новые данные в конец файла.
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
import java.nio.file.StandardOpenOption;
public class Main {
public static void main(String[] args) throws IOException {
Path path = Paths.get("~/project/output.txt");
List<String> lines = Arrays.asList("This is line 4", "This is line 5", "This is line 6");
Files.write(path, lines, StandardCharsets.UTF_8, StandardOpenOption.APPEND);
}
}
Здесь мы добавили параметр StandardOpenOption.APPEND в метод Files.write(), который сообщает Java, что нужно добавить новые данные в конец файла, а не перезаписывать существующие.
Для выполнения операции добавления данных, сначала нужно перейти в директорию вашего проекта в терминале. Затем выполните следующую команду:
javac Main.java && java Main
Закрыть файл
Наконец, нам нужно закрыть файл с использованием метода Files.close(). Это обеспечит запись любых буферизованных данных в файл перед его закрытием.
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.List;
import java.nio.file.StandardOpenOption;
public class Main {
public static void main(String[] args) throws IOException {
Path path = Paths.get("~/project/output.txt");
String content = "This is some text that we want to write to the file";
Files.write(path, content.getBytes());
Files.write(path, System.lineSeparator().getBytes(), StandardOpenOption.APPEND);
Files.write(path, "This is a new line".getBytes(), StandardOpenOption.APPEND);
Files.close();
}
}
Резюме
В этом практическом занятии мы научились записывать данные в файл с использованием класса Files в Java. Мы увидели, как записать строку в файл, записать список строк в файл, добавить данные в файл и закрыть файл. Надеемся, что теперь вы сможете легко записывать файл с помощью класса Files в Java.



