29

使用 JNLP,我有这一行:

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

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

4

2 回答 2

45

FileSaveService.saveFileDialog 采用 InputStream,而不是 Reader(因为它需要二进制数据,而不是字符数据)。

StringBufferInputStream 已被弃用,因为它不能正确地将字符转换为字节。

您可以改用 ByteArrayInputStream :

new ByteArrayInputStream("the string".getBytes("UTF-8"))
于 2010-02-08T04:17:10.680 回答
1

标准 Java 类库无法将 a 包装ReaderInputStream,但以下 SO 问题及其答案提供了一些解决方案。仔细阅读细则!

如何将 Reader 转换为 InputStream 并将 Writer 转换为 OutputStream?

然而,坚持你所拥有的更简单,(如果这只是单元测试代码......看起来是这样),或者用@Thilo的回答所描述的StringInputStreama替换。ByteArrayInputStream

于 2010-02-08T04:04:18.103 回答