¿Cómo puedo transformar un valor String
en un InputStreamReader
?¿Cómo convierto un String en un InputStreamReader en java?
Respuesta
ByteArrayInputStream también hace el truco:
InputStream is = new ByteArrayInputStream(myString.getBytes(charset));
¿Tiene que ser específicamente un InputStreamReader? ¿Qué tal el uso de StringReader?
De lo contrario, podría usar StringBufferInputStream, pero está obsoleto debido a problemas de conversión de caracteres (por lo que debería preferir StringReader).
La misma pregunta como @Dan - por qué no StringReader?
Si tiene que ser InputStreamReader, entonces:
String charset = ...; // your charset
byte[] bytes = string.getBytes(charset);
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
InputStreamReader isr = new InputStreamReader(bais);
También encontré los comunes apache IOUtils
clase, así:
InputStreamReader isr = new InputStreamReader(IOUtils.toInputStream(myString));
La conversión de String-> byte [] o viceversa sin mencionar una codificación de caracteres es casi siempre un error. –
Esto puede causar la pérdida de datos, dependiendo de la codificación de plataforma predeterminada y los caracteres en la cadena. Especificar una codificación Unicode para las operaciones de codificación y descodificación sería mejor. Lea esto para obtener más detalles: http://illegalargumentexception.blogspot.com/2009/05/java-rough-guide-to-character-encoding.html#javaencoding_lossyconversions – McDowell
¿No es necesario el parámetro de codificación para obtener bytes en un cierto codificación? Creo que siempre que elijas la misma codificación para la llamada String # getBytes que elijas para el constructor InputSTreamReader, realmente no importa cuál elijas. Estoy bastante seguro de que Joachim y McDowell están equivocados en este caso específico. No se necesita conocimiento de codificación para envolver un InputStreamReader alrededor de una Cadena. –
¿Estás tratando de obtener una) Reader
funcionalidad de InputStreamReader
, o b) InputStream
funcionalidad fuera de InputStreamReader
? No obtendrás b). InputStreamReader
no es un InputStream
.
El propósito de InputStreamReader
es tomar un InputStream
- una fuente de bytes - y descodificar los bytes de caracteres en la forma de un Reader
. Ya tiene sus datos como caracteres (su cadena original). La codificación de su Cadena en bytes y la decodificación de los bytes a caracteres sería una operación redundante.
Si está intentando obtener un Reader
de su fuente, use StringReader
.
Si está tratando de obtener un InputStream
(que solo le da bytes), use apache commons IOUtils.toInputStream(..)
según lo sugerido por otras respuestas aquí.
Usted puede intentar Cactoos:
InputStream stream = new InputStreamOf(str);
Entonces, si usted necesita un Reader
:
Reader reader = new ReaderOf(stream);
- 1. ¿Cómo convierto un Array [String] a un Set [String]?
- 2. ¿Cómo convierto un objeto String en un objeto Hash?
- 3. ¿Cómo convierto un std :: string a un boost :: gregorian :: date?
- 4. ¿Cómo convierto un byte a un largo en Java?
- 5. ¿Cómo convierto un InputStream a una cadena en Java?
- 6. ¿Cómo convierto un String a Double en Java utilizando una configuración regional específica?
- 7. ¿Cómo convierto un System :: String^a const char *?
- 8. ¿Cómo convierto un InputStream a BufferedImage en Java/Groovy?
- 9. ¿Cómo convierto un TIF a PNG en Java?
- 10. ¿Cómo convierto una colección de Groovy String a una Java String Array?
- 11. ¿Cómo convierto un NSMutableString en un NSString normal?
- 12. ¿Cómo convierto de stringstream a string en C++?
- 13. ¿Cómo convierto wchar_t * a std :: string? .?
- 14. ¿Cómo convierto un valor numérico de cadena con un signo de dólar a BigDecimal en Java?
- 15. ¿Cómo convierto un largo en una cadena en C++?
- 16. ¿Cómo convierto un entero en una cadena en Excel VBA?
- 17. ¿Cómo convierto un objeto java.sql.Date en un GregorianCalendar?
- 18. ¿Cómo convierto un objeto org.w3c.dom.Document en una Cadena?
- 19. ¿Cómo convierto un diccionario a una búsqueda?
- 20. ¿Cómo convierto un CString a un doble en C++?
- 21. ¿Cómo convierto un programa python en un archivo .egg?
- 22. Objective-C, ¿cómo convierto un doble en un int?
- 23. ¿Cómo convierto un constructor de clase Groovy en un Cierre?
- 24. ¿Cómo convierto un Color a un Pincel en XAML?
- 25. ¿Cómo convierto un decimal a un int en C#?
- 26. ¿Cómo convertirías un String a un literal de cadena Java?
- 27. Java: ¿Cómo convertir un objeto File a un objeto String en java?
- 28. String POOL en java
- 29. Cómo convierto un BasicHttpBinding a un CustomBinding
- 30. superíndice en Java String
realmente debería especificar el juego de caracteres, para estar en el lado seguro. – toolkit
Puede * querer * heredar el juego de caracteres predeterminado de la plataforma. – slim
Gracias. Hecho. ¿Cuál es la mejor manera de detectar el juego de caracteres predeterminado de la plataforma? –