web-dev-qa-db-ja.com

StringBufferInputStreamをStringReaderに置き換える方法は?

JNLPを使用して、私はこの行を持っています:

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

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

23
Frank

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

StringBufferInputStreamは、文字をバイトに適切に変換しないため、非推奨になりました。

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

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

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

リーダーをInputStreamに変換し、ライターをOutputStreamに変換する方法は?

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

1
Stephen C