2010-02-08 24 views
16

使用JNLP,我有这样一行:如何用StringReader替换StringBufferInputStream?

File_Save_Service.saveFileDialog(null,null,new StringBufferInputStream("testing"),null); 

如何在这条线与StringReader替换StringBufferInputStream的? StringBufferInputStream的API表示更好地使用StringReader,但是如何在不同类型之间进行转换?

回答

28

FileSaveService.saveFileDialog获取InputStream,而不是阅读器(因为它要的二进制数据,而不是字符数据)。

的StringBufferInputStream已过时,因为它没有字符转换成字节正常。

你可以使用ByteArrayInputStream的代替:

new ByteArrayInputStream("the string".getBytes("UTF-8")) 
+1

的关键点是InputStream的需要知道如何编码的字节。 – Matt

+0

是的,你需要选择一个编码(在上面的例子中是UTF-8)。 – Thilo

1

标准Java类库无法将Reader作为InputStream包装,但以下SO问题及其答案提供了一些解决方案。小心阅读精美的印刷品!

How to convert a Reader to InputStream and a Writer to OutputStream?

然而,这是简单的只是你所拥有的坚持,(如果这仅仅是单元测试代码...因为它似乎是),或用ByteArrayInputStream如更换StringInputStream由@ Thilo的回答描述。