read clase java stringreader

java - clase - ¿Cómo reemplazar StringBufferInputStream con StringReader?



java inputstream class (2)

Usando JNLP, tengo esta línea:

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

¿Cómo reemplazar StringBufferInputStream con StringReader en esta línea? La API para StringBufferInputStream dice que es mejor usar StringReader, pero ¿cómo convertir entre diferentes tipos?


FileSaveService.saveFileDialog toma un InputStream, no un Reader (porque quiere datos binarios, no datos de caracteres).

StringBufferInputStream está en desuso porque no convierte correctamente los caracteres en bytes.

Puedes usar ByteArrayInputStream en su lugar:

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


Las bibliotecas de clases estándar de Java no ofrecen una manera de envolver un Reader como InputStream , pero la siguiente pregunta de SO y sus respuestas ofrecen algunas soluciones. ¡Ten cuidado de leer la letra pequeña!

¿Cómo convertir un Reader a InputStream y un Writer a OutputStream?

Sin embargo, es más simple seguir con lo que tienes (si es solo un código de prueba de unidad ... como parece ser), o reemplazar el StringInputStream con un ByteArrayInputStream como lo describe la respuesta de @ Thilo.