如何将String
值转换为InputStreamReader
?
答案 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)
ByteArrayInputStream
是InputStream
类的子类,它包含一个内部缓冲区,该缓冲区包含可从流中读取的字节。我们可以使用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);
Apache Commons IO库包含实用程序类,流实现,文件过滤器,文件比较器,字节序转换类等。下载最新版本的commons-io-2.6 jar
String inputString = "text";
InputStream inputStream = IOUtils.toInputStream(inputString);
InputStreamReader input = new InputStreamReader(inputStream);