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