Как заменить StringBufferInputStream StringReader?

Используя JNLP, у меня есть эта строка:

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

Как заменить StringBufferInputStream StringReader в этой строке? API для StringBufferInputStream говорит, что лучшее использование StringReader, но как преобразовать между различными типами?

22
задан Jeff Atwood 8 February 2010 в 03:44
поделиться

2 ответа

FileSaveService.saveFileDialog принимает InputStream, а не Reader (потому что ему нужны двоичные данные, а не символы данные).

StringBufferInputStream устарел, потому что он не преобразует символы в байты должным образом.

Вместо этого можно использовать ByteArrayInputStream:

new ByteArrayInputStream("the string".getBytes("UTF-8"))
36
ответ дан 29 November 2019 в 04:57
поделиться

Стандартные библиотеки классов Java не предлагают возможности обернуть Reader как InputStream , но следующая SO вопрос и ответы на него предлагают некоторые решения. Внимательно читайте мелкий шрифт!

Как преобразовать Reader в InputStream и Writer в OutputStream?

Однако проще просто придерживаться того, что у вас есть (если это просто код модульного теста ... как кажется) или заменить StringInputStream на ByteArrayInputStream , как описано в ответе @ Thilo.

1
ответ дан 29 November 2019 в 04:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: