代码之家  ›  专栏  ›  技术社区  ›  Frank

如何用StringReader替换StringBufferInputStream?

  •  19
  • Frank  · 技术社区  · 14 年前

    使用JNLP,我有以下行:

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

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

    2 回复  |  直到 10 年前
        1
  •  34
  •   Thilo    14 年前

    filesaveservice.savefiledialog接受输入流,而不是读卡器(因为它需要二进制数据,而不是字符数据)。

    不推荐使用StringBufferInputStream,因为它不能正确地将字符转换为字节。

    您可以使用bytearrayinputstream代替:

    new ByteArrayInputStream("the string".getBytes("UTF-8"))
    
        2
  •  1
  •   Community miroxlav    7 年前

    标准的Java类库不提供包装的方法。 Reader 作为一个 InputStream 但是下面的问题和答案提供了一些解决方案。仔细阅读细版!

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

    但是,只需坚持您所得到的就简单了,(如果这只是单元测试代码…或者替换 StringInputStream 用一个 ByteArrayInputStream 如@thilo的回答所述。