如何用StringReader替换StringBufferInputStream?

发布于 2024-08-20 09:58:30 字数 279 浏览 9 评论 0原文

使用 JNLP,我有这一行:

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

How to Replace StringBufferInputStream with StringReader in this line ? StringBufferInputStream的API说最好使用StringReader,但是如何在不同类型之间进行转换?

Using JNLP, I have this line :

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

How to replace StringBufferInputStream with StringReader in this line ? The API for StringBufferInputStream says better use StringReader, but how to convert between different types ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蝶舞 2024-08-27 09:58:30

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

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

您可以使用 ByteArrayInputStream 代替:

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

FileSaveService.saveFileDialog takes an InputStream, not a Reader (because it wants binary data, not character data).

StringBufferInputStream is deprecated because it does not convert characters into bytes properly.

You can use ByteArrayInputStream instead:

new ByteArrayInputStream("the string".getBytes("UTF-8"))
帅气称霸 2024-08-27 09:58:30

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

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

但是,更简单的方法是坚持使用您所拥有的内容(如果这只是单元测试代码......就像它看起来的那样),或者替换 StringInputStream< /code> 与 ByteArrayInputStream 如 @Thilo 的答案所述。

The standard Java class libraries offer no way to wrap a Reader as an InputStream, but the following SO question and its answers offer some solutions. Be careful to read the fine-print!

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

However, it is simpler to just stick with what you have got, (if this is just unit test code ... as it appears to be), or to replace the StringInputStream with a ByteArrayInputStream as described by @Thilo's answer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文