与answered repeatedly一样,您可以轻松地将String
转换为InputStream
。
在浏览Java 8文档时,我遇到了长期弃用的StringBufferInputStream
类,该类声明了
从JDK 1.1开始,从字符串创建流的首选方法是通过
StringReader
类。
这是指什么方式?有几种方法需要非默认库中的类,例如Apache Commons IO中容易出错的ReaderInputStream
,但我正在寻找文档中提到的首选方法。其他问题中引用的解决方案足以满足我的使用案例,但我仍然想知道文档引用的内容。
更新
显然这是一个尚未解决的16 year old bug。链接中建议的解决方案是使用已弃用的类。我无法想象这就是文档所说的内容。
答案 0 :(得分:2)
我不知道javadoc部分的答案,但您指出的第一个答案是合理的:只需使用String.getBytes(encoding)
获取字节数组,然后使用ByteArrayInputStream
。< / p>
但通常更重要的问题是:为什么你需要这样的转换呢?在一个设计良好的系统中,你永远不需要朝着这个方向前进:它违背了JDK中你处理char
和String
s以及{{1}以外的事物的正常流程。 s和byte
s。因此,在这方面的转换非常少见,JDK似乎没有必要得到明确的支持。