![](/img/trans.png)
[英]Java Server - How to take input from InputStreamReader and convert to a String?
[英]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.