Во многих проектах по программированию преобразование файла в строку является одним из наиболее распространенных вариантов использования при разработке.
В этом руководстве мы обсудим 5 простых и отобранных способов чтения или преобразования файла в строку в Java. В зависимости от конфигурации вашего проекта вы можете использовать любой из следующих методов.

Для целей этого руководства предположим, что «inputStream» — это переменная типа InputStream.

InputStream inputStream;

Проверьте различные способы преобразования ниже.

1. Использование встроенного пакета файлов Java 1.11+:

import java.nio.file.Files;
import java.nio.file.Path;
String result = Files.readString(Path.of("filePath"));

//Bonus: To Write string to a file you can use 
String content = "Demo Content";
Files.writeString(filePath, content);

Этот метод работает с Java 1.11+

2. Использование встроенного пакета Streams Java 1.8+:

String result = new String(Files.readAllBytes(Paths.get(filePath)),         StandardCharsets.UTF_8);

Этот метод работает с Java 1.8+

3. Собственный Java-сканер:

try (Scanner scanner = new Scanner(Paths.get(fileName), StandardCharsets.UTF_8.name())) {
    String result = scanner.useDelimiter("\\A").next();   
}

Обратите внимание, что «\A» представляет шаблон регулярного выражения для метода сканера useDelimiter. «\A» означает: начало строки! . Поэтому, когда этот шаблон предоставляется, весь поток готов к объекту сканера.

4. Способ Apache commons-io IOUtils:

File file = new File("data.txt");
String result = FileUtils.readFileToString(file, StandardCharsets.UTF_8);

Для этого метода в ваш проект должна быть включена библиотека Apache commons-io. Вы можете включить его с помощью следующей ссылки maven: https://mvnrepository.com/artifact/commons-io/commons-io/2.6

5. Использование библиотеки Google Guava:

String result = Files.toString(new File(path), Charsets.UTF_8);

Для этого метода в ваш проект должна быть включена библиотека Guava. Вы можете включить его с помощью приведенной ниже ссылки maven: https://mvnrepository.com/artifact/com.google.guava/guava/r09.

Если вы хотите поиграть с реальными InputStreams без каких-либо служебных методов, вы можете использовать приведенный выше стиль.

Если вы считаете, что есть другие лучшие способы конвертировать потоки, или если у вас есть какие-либо вопросы, оставьте комментарий ниже.

Заключение:

В Java есть замечательные библиотеки, которые упрощают множество задач. Каждый проект уникален и у каждого есть свое руководство по стилю. Если вы найдете другие лучшие способы решения этой проблемы, оставьте свой совет в комментариях ниже.

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

Подпишитесь на https://tipseason.com/ для получения дополнительных технических советов и советов по собеседованию.

Что дальше ?