Если мы используем Java 7 и выше, а также знаем, какое содержимое будет добавлено (добавлено) в файл, мы можем использовать метод newBufferedWriter в пакете NIO.
public static void main(String[] args) {
Path FILE_PATH = Paths.get("C:/temp", "temp.txt");
String text = "\n Welcome to Java 8";
//Writing to the file temp.txt
try (BufferedWriter writer = Files.newBufferedWriter(FILE_PATH, StandardCharsets.UTF_8, StandardOpenOption.APPEND)) {
writer.write(text);
} catch (IOException e) {
e.printStackTrace();
}
}
Есть несколько моментов, на которые стоит обратить внимание:
- Всегда полезно указывать кодировку кодировки, и для этого у нас есть константа в классе
StandardCharsets
.
- Код использует оператор
try-with-resource
, в котором ресурсы автоматически закрываются после попытки.
Хотя OP не спрашивал, но на всякий случай мы хотим искать строки, имеющие какое-то конкретное ключевое слово, например, confidential
мы можем использовать потоковые API в Java:
//Reading from the file the first line which contains word "confidential"
try {
Stream<String> lines = Files.lines(FILE_PATH);
Optional<String> containsJava = lines.filter(l->l.contains("confidential")).findFirst();
if(containsJava.isPresent()){
System.out.println(containsJava.get());
}
} catch (IOException e) {
e.printStackTrace();
}