inputstream to string java 8

Конвертирование inputstream в тип string на языке java 8 Считывание файлов Java организовано в языке Java просто, для этого используется функция «FileInputStream». Однако если необходимо внести какие-либо изменения в считываемом файле или обработать какой-либо объект, тогда лучше преобразовать его в тип «String». Имеется несколько способов преобразования «Inputstream» в «String». Guava CharStreams Guava – это библиотека Java, разработанная компанией Google. В данной библиотеке есть несколько очень полезных классов и методов для выполнения операций ввода-вывода. Для преобразования inputstream в тип string потребуется класс ByteSource. Для начала необходимо заключить «inputStream» в класс ByteSource. Далее необходимо считать ByteSource как CharSource с набором символов UTF8. В заключении считываем методом CharSource как строчный тип.
@Test
public void givenUsingGuavaAndJava7_whenConvertingAnInputStreamToAString_thenCorrect()
throws IOException {
String originalString = randomAlphabetic(8);
InputStream inputStream = new ByteArrayInputStream(originalString.getBytes());
String text = null;
try (final Reader reader = new InputStreamReader(inputStream)) {
text = CharStreams.toString(reader);
}
assertThat(text, equalTo(originalString));
}
Использование сканера Ещё один способ конвертации – это использование класса Scanner. Это рабочий, однако не очень популярный способ. Считывается содержимое файла «InputStream». Далее содержимое файла в кодировке UTF-8 передаётся в конструктор сканера. При этом, чтобы сканер считывал информацию построчно необходимо использовать разделитель « ». Благодаря этому, после прочтения каждой строки, «scanner.next()» будет возвращаться к объекту StringBuilder. Пример:
public class InputStreamToString
{public static void main(String[] args)
{InputStream inputStream = null;
Scanner scanner = null;
StringBuilder stringBuilder = new StringBuilder();
try
{inputStream = new FileInputStream (new File("D:	emp.txt"));
scanner = new Scanner(inputStream, "UTF-8").useDelimiter("
");
while (scanner.hasNext())
{stringBuilder.append(scanner.next());}
System.out.println(stringBuilder);
} catch (FileNotFoundException e)
{e.printStackTrace(); } } }
IOUtils.copy ()
IOUtils.toString ()
Пример с использованием IOUtils.toString ():
import org.apache.commons.io.IOUtils;
public class ReadStreamIntoStringUsingIOUtils
{
public static void main(String[] args) throws FileNotFoundException, IOException
{
String theString2 = IOUtils.toString(new FileInputStream(new File("D:/project/text.txt")), "UTF-8");
System.out.println(theString2);
}
}
Класс IOUtils Данный класс предоставляет статические служебные методы для операций ввода / вывода. Использование этого инструмента для конвертации делает код более читабельным. Данный класс входит в инструменты «Apache Commons», которые включены в любой проект Java. Для конвертации можно использовать любой из двух методов: