如何用StringReader替换StringBufferInputStream?

时间:2010-02-08 03:43:37

标签: java stringreader

使用JNLP,我有这一行:

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

如何在此行中使用StringReader替换StringBufferInputStream? StringBufferInputStream的API说更好用StringReader,但是如何在不同类型之间进行转换?

2 个答案:

答案 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的回答所述。