29

JNLP を使用すると、次の行があります。

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

この行で StringBufferInputStream を StringReader に置き換える方法は? StringBufferInputStream の API は StringReader を使用するほうがよいと言っていますが、異なるタイプ間で変換するにはどうすればよいですか?

4

2 に答える 2

45

FileSaveService.saveFileDialog は、Reader ではなく InputStream を取ります (文字データではなくバイナリ データが必要なため)。

StringBufferInputStream は、文字を正しくバイトに変換しないため、推奨されません。

代わりに ByteArrayInputStream を使用できます。

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

Reader標準の Java クラス ライブラリでは、 aを としてラップする方法はありませんInputStreamが、次の SO の質問とその回答はいくつかの解決策を提供します。細かい活字を読むのに注意してください!

Reader を InputStream に、Writer を OutputStream に変換する方法は?

ただし、取得したものに固執する方が簡単です(これが単なる単体テストコードの場合...そのように見える場合)、または@Thilo の回答で説明されているようStringInputStreamに aに置き換える方が簡単です。ByteArrayInputStream

于 2010-02-08T04:04:18.103 に答える