如何将字符串值转换为InputStreamReader?
当前回答
你可以试试仙人掌:
InputStream stream = new InputStreamOf(str);
然后,如果你需要一个读者:
Reader reader = new ReaderOf(stream);
其他回答
它必须是一个特定的InputStreamReader吗?使用StringReader怎么样?
否则,您可以使用StringBufferInputStream,但由于字符转换问题,它已被弃用(这就是为什么您应该更喜欢StringReader)。
ByteArrayInputStream也能做到这一点:
InputStream is = new ByteArrayInputStream( myString.getBytes( charset ) );
然后转换为读者:
InputStreamReader reader = new InputStreamReader(is);
你可以试试仙人掌:
InputStream stream = new InputStreamOf(str);
然后,如果你需要一个读者:
Reader reader = new ReaderOf(stream);
我还找到了apache commons IOUtils类,所以:
InputStreamReader isr = new InputStreamReader(IOUtils.toInputStream(myString));
你试图得到a)阅读器功能的InputStreamReader,或b) InputStream功能的InputStreamReader?你不会得到b). InputStreamReader不是一个InputStream。
InputStreamReader的目的是获取一个InputStream(字节源),并以Reader的形式将字节解码为字符。您已经拥有了作为字符的数据(原始字符串)。将字符串编码为字节并将字节解码回字符将是一个冗余操作。
如果你想从源代码中获取一个Reader,请使用StringReader。
如果你试图获得一个InputStream(只给你字节),使用apache公共IOUtils.toInputStream(..),正如这里的其他答案所建议的那样。
推荐文章
- Intellij IDEA Java类在保存时不能自动编译
- 何时使用Mockito.verify()?
- 在maven中安装mvn到底做什么
- 不可变与不可修改的集合
- 如何在JSON中使用杰克逊更改字段名
- GSON -日期格式
- 如何从线程捕获异常
- 无法解析主机"<URL here>"没有与主机名关联的地址
- 如何在Java中打印二叉树图?
- String.format()在Java中格式化双重格式
- com.jcraft.jsch.JSchException: UnknownHostKey
- Java中的操作符重载
- 如何加速gwt编译器?
- 如何删除表中特定列的第一个字符?
- 在Hibernate中重新连接分离对象的正确方法是什么?