如何在Java中将String转换为InputStreamReader?

时间:2008-10-29 15:06:37

标签: java string stream

如何将String值转换为InputStreamReader

6 个答案:

答案 0 :(得分:320)

ByteArrayInputStream也有诀窍:

InputStream is = new ByteArrayInputStream( myString.getBytes( charset ) );

答案 1 :(得分:61)

我还找到了apache commons IOUtils类,所以:

InputStreamReader isr = new InputStreamReader(IOUtils.toInputStream(myString));

答案 2 :(得分:32)

它必须特别是一个InputStreamReader吗?如何使用StringReader

否则,您可以使用StringBufferInputStream,但由于字符转换问题而不推荐使用(这就是为什么您应该更喜欢StringReader)。

答案 3 :(得分:16)

@Dan相同的问题 - 为什么不是StringReader?

如果必须是InputStreamReader,那么:

String charset = ...; // your charset
byte[] bytes = string.getBytes(charset);
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
InputStreamReader isr = new InputStreamReader(bais);

答案 4 :(得分:2)

您可以尝试Cactoos

InputStream stream = new InputStreamOf(str);

然后,如果您需要Reader

Reader reader = new ReaderOf(stream);

答案 5 :(得分:0)

使用普通Java转换

ByteArrayInputStreamInputStream类的子类,它包含一个内部缓冲区,该缓冲区包含可从流中读取的字节。我们可以使用String类将InputStream转换为ByteArrayInputStream对象。

String targetString = "This is a text";
InputStream targetStream = new ByteArrayInputStream(targetString.getBytes());
InputStreamReader target = new InputStreamReader(targetStream);

用番石榴转换

Guava是一套核心和扩展库,其中包括实用程序类,google的集合,io类等等。它有助于最佳编码实践,并有助于减少编码错误。它提供了用于收集,缓存,原语支持,并发,通用注释,字符串处理,I / O和验证的实用程序方法。从guava-18.0.jar

下载最新版本的Guava jar文件
String initialString = "This is a text";
InputStream initialStream = new ReaderInputStream(CharSource.wrap(initialString).openStream());
InputStreamReader initial = new InputStreamReader(initialStream);

与Commons IO转换

Apache Commons IO库包含实用程序类,流实现,文件过滤器,文件比较器,字节序转换类等。下载最新版本的commons-io-2.6 jar

String inputString = "text";
InputStream inputStream = IOUtils.toInputStream(inputString);
InputStreamReader input = new InputStreamReader(inputStream);