使用JNLP,我有以下这行代码:
File_Save_Service.saveFileDialog(null,null,new StringBufferInputStream("testing"),null);
如何将StringBufferInputStream替换为StringReader?StringBufferInputStream的API建议使用StringReader,但如何在不同类型之间进行转换?
使用JNLP,我有以下这行代码:
File_Save_Service.saveFileDialog(null,null,new StringBufferInputStream("testing"),null);
如何将StringBufferInputStream替换为StringReader?StringBufferInputStream的API建议使用StringReader,但如何在不同类型之间进行转换?
FileSaveService.saveFileDialog需要输入流而不是读取器(因为它需要二进制数据而不是字符数据)。
StringBufferInputStream已经被弃用,因为它不能正确地将字符转换为字节。
您可以改用ByteArrayInputStream:
new ByteArrayInputStream("the string".getBytes("UTF-8"))
标准的Java类库没有提供一种将Reader
封装为InputStream
的方法,但以下SO问题及其答案提供了一些解决方案。 请注意仔细阅读细则!
如何将Reader转换为InputStream,Writer转换为OutputStream?
然而,如果这只是单元测试代码...就像@Thilo的答案所描述的那样,使用ByteArrayInputStream
替换StringInputStream
会更简单。
toByteArray()
代替getBytes("UTF-8")
。https://dev59.com/BVYN5IYBdhLWcg3w574u#46701367 - ThomasW