Метод newBufferedReader
Метод newBufferedReader класса Files создает и возвращает объект BufferedReader для чтения текста из указанного файла. Первым параметром метод принимает объект Path, представляющий путь к файлу. Вторым необязательным параметром можно передать Charset, определяющую кодировку символов. Если кодировка не указана, используется UTF-8. Метод выбрасывает исключение IOException, если файл не существует или возникает ошибка при открытии.
Синтаксис
Files.newBufferedReader(path)
Files.newBufferedReader(path, charset)
Пример
Давайте создадим файл, а затем откроем его с помощью метода newBufferedReader и прочитаем первую строку:
import java.io.BufferedReader;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main
{
public static void main(String[] args) throws Exception
{
Path path = Path.of("test.txt");
Files.writeString(path, "abcde\n12345");
BufferedReader reader = Files.newBufferedReader(path);
String line = reader.readLine();
reader.close();
System.out.println(line);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте прочитаем все строки из файла, используя метод newBufferedReader в цикле:
import java.io.BufferedReader;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main
{
public static void main(String[] args) throws Exception
{
Path path = Path.of("test.txt");
Files.writeString(path, "abcde\n12345");
BufferedReader reader = Files.newBufferedReader(path);
String line;
while ((line = reader.readLine()) != null)
{
System.out.println(line);
}
reader.close();
}
}
Результат выполнения кода:
"abcde"
"12345"
Пример
Давайте укажем кодировку явно, передав вторым параметром объект Charset:
import java.io.BufferedReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main
{
public static void main(String[] args) throws Exception
{
Path path = Path.of("test.txt");
Files.writeString(path, "abcde");
BufferedReader reader = Files.newBufferedReader(
path,
StandardCharsets.UTF_8
);
String line = reader.readLine();
reader.close();
System.out.println(line);
}
}
Результат выполнения кода:
"abcde"
Смотрите также
-
класс
Files,
который содержит методы для работы с файлами -
метод
lines,
который возвращает поток строк из файла -
метод
readAllLines,
который читает все строки файла в список -
метод
readString,
который читает все содержимое файла в строку