java - separate - stream string c++
¿Cómo se crea un InputStream a partir de una cadena? (6)
A partir de Java 7, puede usar el siguiente modismo:
String someString = "...";
InputStream is = new ByteArrayInputStream( someString.getBytes(StandardCharsets.UTF_8) );
Esta pregunta ya tiene una respuesta aquí:
No estoy acostumbrado a trabajar con streams en Java, ¿cómo creo un InputStream
desde una String
?
Aqui tienes:
InputStream is = new ByteArrayInputStream( myString.getBytes() );
Actualización Para uso de soporte de múltiples bytes (gracias al comentario de Aaron Waibel ):
InputStream is = new ByteArrayInputStream(Charset.forName("UTF-16").encode(myString).array());
Por favor, consulte el manual ByteArrayInputStream .
Es seguro usar un argumento de conjunto de caracteres en String#getBytes(charset) anterior.
Después de JDK 7+ puedes usar
java.nio.charset.StandardCharsets.UTF_16
en lugar de una cadena de codificación codificada:
InputStream is = new ByteArrayInputStream(StandardCharsets.UTF_16.encode(myString).array());
En lugar de CharSet.forName, el uso de com.google.common.base.Charsets de Google Guava (http://code.google.com/p/guava-libraries/wiki/StringsExplained#Charsets) es un poco mejor:
InputStream is = new ByteArrayInputStream( myString.getBytes(Charsets.UTF_8) );
El CharSet que uses dependerá completamente de lo que vayas a hacer con InputStream, por supuesto.
Podrías hacer esto:
InputStream in = new ByteArrayInputStream(string.getBytes("UTF-8"));
Tenga en cuenta la UTF-8
. Debe especificar el conjunto de caracteres en el que desea codificar los bytes. Es común elegir UTF-8
si no necesita específicamente nada más. De lo contrario, si no selecciona nada obtendrá la codificación predeterminada que puede variar entre sistemas. Desde JavaDoc :
El comportamiento de este método cuando esta cadena no puede codificarse en el juego de caracteres predeterminado no está especificado. La clase CharsetEncoder se debe usar cuando se requiere más control sobre el proceso de codificación.
Java 7+
Es posible aprovechar la clase StandardCharsets
JDK:
String str=...
InputStream is = new ByteArrayInputStream(StandardCharsets.UTF_16.encode(str).array());
InputStream in = new ByteArrayInputStream(yourstring.getBytes());