如何用StringReader替换StringBufferInputStream?

2022-09-01 11:50:48

使用JNLP,我有这行:

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

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


答案 1

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

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

您可以使用 ByteArrayInputStream 代替:

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

答案 2

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

如何将读取器转换为输入流,将写入器转换为输出流?

但是,坚持使用您拥有的东西会更简单(如果这只是单元测试代码...),或者用@Thilo的答案所描述的a替换。StringInputStreamByteArrayInputStream


推荐