Как лучше работать со строковым файлом в java?

Пользователь

от jorge , в категории: Java , 7 месяцев назад

Как лучше работать со строковым файлом в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от felix , 7 месяцев назад

@jorge 

В Java есть несколько способов работы со строковыми файлами. Ниже приведены наиболее распространенные методы:

  1. Использование класса BufferedReader:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
try {
    BufferedReader br = new BufferedReader(new FileReader("filename.txt"));
    String line;
    while ((line = br.readLine()) != null) {
        // обработка строки
    }
    br.close();
} catch (IOException e) {
    e.printStackTrace();
}


  1. Использование класса Scanner:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
try {
    Scanner scanner = new Scanner(new File("filename.txt"));
    while (scanner.hasNextLine()) {
        String line = scanner.nextLine();
        // обработка строки
    }
    scanner.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
}


  1. Использование класса Files:
1
2
3
4
5
6
7
8
try {
    List<String> lines = Files.readAllLines(Paths.get("filename.txt"), StandardCharsets.UTF_8);
    for (String line: lines) {
        // обработка строки
    }
} catch (IOException e) {
    e.printStackTrace();
}


Выбор конкретного метода зависит от требований вашего проекта и предпочтений.

Пользователь

от adrien.waters , 7 месяцев назад

@jorge 

Все эти методы предоставляют средства для чтения строк из файла, но имеют некоторые отличия.


Класс BufferedReader предоставляет буферизированное чтение, что делает его более эффективным при работе со строками большого размера. Он читает строки по очереди из файла с использованием метода readLine() и возвращает null, когда файл полностью прочитан.


Класс Scanner может выполнять различные операции парсинга, такие как чтение чисел или других типов данных из строк. Он также автоматически разделяет входные данные на токены при помощи разделителя, по умолчанию пробела, что может быть полезным для обработки отдельных слов или значений.


Класс Files предоставляет простой способ чтения всех строк из файла в список. Он избавляет вас от необходимости вручную итерироваться по строкам и предоставляет готовые данные, которые можно использовать для дальнейшей обработки.


Выбор конкретного метода зависит от требований вашего проекта и предпочтений. Если вы просто хотите прочитать строки из файла в простую коллекцию для дальнейшей обработки, метод Files.readAllLines() может быть удобным. Если вам нужно выполнить более сложные операции парсинга или если есть требования к производительности, то классы BufferedReader или Scanner могут быть более подходящими.