- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
一直answered repeatedly ,您可以轻松地将 String
转换为 InputStream
。
在浏览 Java 8 文档时,我遇到了长期弃用的 StringBufferInputStream
类,它指出
As of JDK 1.1, the preferred way to create a stream from a string is via the
StringReader
class.
这里指的是什么方式?有几种方法需要非默认库中的类,例如容易出错的 ReaderInputStream
来自 Apache Commons IO,但我正在寻找文档中提到的首选方式。其他问题中引用的解决方案足以满足我的用例,但我仍然想知道文档引用的内容。
更新
显然这是一个 16 year old bug那还没有修好。链接中建议的解决方案是使用已弃用的类。我无法想象这就是文档所说的内容。
最佳答案
我不知道 javadoc 部分的答案,但你指出的第一个答案是合理的:只需使用 String.getBytes(encoding)
获取字节数组,然后使用 ByteArrayInputStream
.
但通常更重要的问题是:到底为什么需要这样的转换?在一个设计良好的系统中,您永远不需要朝这个方向前进:在 JDK 中处理 char
和 String
的事物的正常流程是相反的,和外部 byte
s 和 Stream
s。所以在这个方向上的转换是非常罕见的,JDK 似乎没有必要有明确的支持。
关于java - 为什么 StringBufferInputStream 文档推荐使用 StringReader 进行 String 到 Stream 的转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30468494/
我正在使用 LogManager.readConfiguration()这需要一个 InputStream 其内容我想来自一个字符串。有没有等同于StringBufferInputStream没有弃用
我想读取输入字符串并将其作为 UTF8 编码字符串返回。所以我在 Oracle/Sun 网站上找到了一个使用 FileInputStream 的例子。我不想读取一个文件,而是一个字符串,所以我将其更改
使用 JNLP,我有这行: File_Save_Service.saveFileDialog(null,null,new StringBufferInputStream("testing"),null
一直answered repeatedly ,您可以轻松地将 String 转换为 InputStream。 在浏览 Java 8 文档时,我遇到了长期弃用的 StringBufferInputStr
我是一名优秀的程序员,十分优秀!