1. Общ преглед
В този бърз урок ще разгледаме как да конвертираме стандартен String в InputStream, използвайки обикновена Java, Guava и Apache Commons IO библиотека.
Тази статия е част от поредицата „Java - Back to Basic“ тук на Baeldung.
2. Конвертиране с обикновена Java
Нека започнем с прост пример, използващ Java за извършване на преобразуването - с помощта на междинен байтов масив:
@Test public void givenUsingPlainJava_whenConvertingStringToInputStream_thenCorrect() throws IOException { String initialString = "text"; InputStream targetStream = new ByteArrayInputStream(initialString.getBytes()); }
Обърнете внимание, че методът getBytes () кодира този низ, използвайки стандартния набор от символи на платформата, така че за да избегнете нежелано поведение, можете да използвате getBytes (Charset charset) и да контролирате процеса на кодиране .
3. Конвертирайте с гуава
Guava не предоставя метод за директно преобразуване, но ни позволява да извадим Reader от низа - в този момент получаването на InputStream е лесно:
@Test public void givenUsingGuava_whenConvertingStringToInputStream_thenCorrect() throws IOException { String initialString = "text"; InputStream targetStream = new ReaderInputStream(CharSource.wrap(initialString).openStream()); }
4. Конвертиране с Commons IO
И накрая, библиотеката Apache Commons IO предлага отлично директно решение:
@Test public void givenUsingCommonsIO_whenConvertingStringToInputStream_thenCorrect() throws IOException { String initialString = "text"; InputStream targetStream = IOUtils.toInputStream(initialString); }
И накрая - забележете, че оставяме входния поток отворен в тези примери - не забравяйте да го затворите, когато сте готови .
Това е - три прости и кратки начина да извлечете InputStream от прост низ.