Строка Java для InputStream

Строка Java для InputStream

1. обзор

В этом кратком руководстве мы рассмотрим, какconvert a standard String to an InputStream использовать простую Java, Guava и библиотеку ввода-вывода Apache Commons.

Эта статья является частьюthe “Java – Back to Basic” series здесь для примера.

2. Преобразование с помощью простой Java

Начнем с простого примера использования Java для преобразования - с использованием промежуточного массиваbyte:

@Test
public void givenUsingPlainJava_whenConvertingStringToInputStream_thenCorrect()
  throws IOException {
    String initialString = "text";
    InputStream targetStream = new ByteArrayInputStream(initialString.getBytes());
}

Обратите внимание, что методgetBytes() кодирует этотString, используя кодировку платформы по умолчанию, поэтому, чтобы избежать нежелательного поведения, вы можете использоватьgetBytes(Charset charset) иcontrol the encoding process.

3. Конвертировать с помощью гуавы

Guava не предоставляет метод прямого преобразования, но позволяет нам получитьReader из String - в этот момент получить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);
}

Наконец - обратите внимание, что в этих примерах мы оставляем входной поток открытым - не забудьтеclose it when you’re done.

Вот и все - три простых и кратких способа получитьInputStreamиз простой String.