繁体   English   中英

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

[英]How do I turn a String into a InputStreamReader in java?

如何将String值转换为InputStreamReader

ByteArrayInputStream也可以解决这个问题:

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

然后转换为阅读器:

InputStreamReader reader = new InputStreamReader(is);

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

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

它必须是专门的 InputStreamReader 吗? 如何使用StringReader

否则,您可以使用StringBufferInputStream ,但由于字符转换问题,它已被弃用(这就是您应该更喜欢 StringReader 的原因)。

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

如果必须是 InputStreamReader,则:

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

你们是不是要得到一个) Reader出的功能InputStreamReader ,或者b) InputStream功能出来InputStreamReader 你不会得到 b)。 InputStreamReader不是InputStream

InputStreamReader的目的是获取InputStream - 字节源 - 并将字节解码为Reader形式的字符。 您已经将数据作为字符(您的原始字符串)。 将您的字符串编码为字节并将字节解码回字符将是一个多余的操作。

如果您试图从源中获取Reader ,请使用StringReader

如果您正在尝试获取InputStream (仅提供字节),请按照此处其他答案的建议使用 apache commons IOUtils.toInputStream(..)

你可以试试仙人掌

InputStream stream = new InputStreamOf(str);

然后,如果您需要Reader

Reader reader = new ReaderOf(stream);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM