使用 JNLP,我有这一行:
File_Save_Service.saveFileDialog(null,null,new StringBufferInputStream("testing"),null);
如何在这一行中用 StringReader 替换 StringBufferInputStream ?StringBufferInputStream 的 API 说最好使用 StringReader,但是如何在不同类型之间进行转换?
使用 JNLP,我有这一行:
File_Save_Service.saveFileDialog(null,null,new StringBufferInputStream("testing"),null);
如何在这一行中用 StringReader 替换 StringBufferInputStream ?StringBufferInputStream 的 API 说最好使用 StringReader,但是如何在不同类型之间进行转换?
FileSaveService.saveFileDialog 采用 InputStream,而不是 Reader(因为它需要二进制数据,而不是字符数据)。
StringBufferInputStream 已被弃用,因为它不能正确地将字符转换为字节。
您可以改用 ByteArrayInputStream :
new ByteArrayInputStream("the string".getBytes("UTF-8"))
标准 Java 类库无法将 a 包装Reader
为InputStream
,但以下 SO 问题及其答案提供了一些解决方案。仔细阅读细则!
如何将 Reader 转换为 InputStream 并将 Writer 转换为 OutputStream?
然而,坚持你所拥有的更简单,(如果这只是单元测试代码......看起来是这样),或者用@Thilo的回答所描述的StringInputStream
a替换。ByteArrayInputStream