Автор оригинала: Pankaj Kumar.
Сегодня мы рассмотрим, как преобразовать строку в поток ввода в java. Недавно я написал сообщение о преобразовании входного потока в строку .
Строка Java для ввода потока
Есть два способа, которые я использовал для преобразования строки во входной поток.
- Java IO ByteArrayInputStream класс
- Класс Apache Commons IO IOUtils
Давайте рассмотрим пример программы для использования этих классов.
Строка Java для ввода потока с помощью ByteArrayInputStream
import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.Charset; public class StringToInputStreamUsingByteArrayInputStream { public static void main(String[] args) throws IOException { String str = "convert String to Input Stream Example using ByteArrayInputStream"; // convert using ByteArrayInputStream InputStream is = new ByteArrayInputStream(str.getBytes(Charset.forName("UTF-8"))); // print it to console BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line = br.readLine(); while (line != null) { System.out.println(line); line = br.readLine(); } } }
Строка для ввода потока с помощью IOUtils Apache Commons
import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; import org.apache.commons.io.IOUtils; public class StringToInputStreamUsingIOUtils { public static void main(String[] args) throws IOException { String str = "Example using Apache Commons IO class IOUtils"; InputStream stream = IOUtils.toInputStream(str, Charset.forName("UTF-8")); stream.close(); } }
Вы можете использовать IOUtils
, если вы уже используете банки ввода-вывода Apache Commons, в противном случае нет никакой пользы, поскольку внутри он использует класс ByteArrayInputStream. Ниже приведена реализация метода toInputStream
из IOUtils
исходный код класса.
public static InputStream toInputStream(final String input, final Charset encoding) { return new ByteArrayInputStream(input.getBytes(Charsets.toCharset(encoding))); }
Это все о преобразовании строки во входной поток на java.