Comment crée-t-on un InputStream à partir d’une chaîne?

Je ne suis pas habitué à travailler avec des stream en Java – comment créer un InputStream partir d’une Ssortingng ?

Voici:

 InputStream is = new ByteArrayInputStream( mySsortingng.getBytes() ); 

Mise à jour Pour une prise en charge multi-octets (grâce au commentaire d’ Aaron Waibel ):

 InputStream is = new ByteArrayInputStream(Charset.forName("UTF-16").encode(mySsortingng).array()); 

S’il vous plaît voir le manuel ByteArrayInputStream .

Il est prudent d’utiliser un argument charset dans la méthode Ssortingng # getBytes (charset) ci-dessus.

Après JDK 7+, vous pouvez utiliser

 java.nio.charset.StandardCharsets.UTF_16 

au lieu de la chaîne de codage en dur:

 InputStream is = new ByteArrayInputStream(StandardCharsets.UTF_16.encode(mySsortingng).array()); 

Vous pourriez faire ceci:

 InputStream in = new ByteArrayInputStream(ssortingng.getBytes("UTF-8")); 

Notez le UTF-8 . Vous devez spécifier le jeu de caractères dans lequel vous voulez que les octets soient codés. Il est courant de choisir UTF-8 si vous n’avez pas besoin d’autre chose. Sinon, si vous ne sélectionnez rien, vous obtenez l’encodage par défaut qui peut varier d’un système à l’autre. Depuis le JavaDoc :

Le comportement de cette méthode lorsque cette chaîne ne peut pas être codée dans le jeu de caractères par défaut n’est pas spécifié. La classe CharsetEncoder doit être utilisée lorsque davantage de contrôle sur le processus de codage est requirejs.

 InputStream in = new ByteArrayInputStream(yourssortingng.getBytes()); 

Java 7+

Il est possible de tirer parti de la classe JDK StandardCharsets :

 Ssortingng str=... InputStream is = new ByteArrayInputStream(StandardCharsets.UTF_16.encode(str).array()); 

À partir de Java 7, vous pouvez utiliser l’idiome suivant:

 Ssortingng someSsortingng = "..."; InputStream is = new ByteArrayInputStream( someSsortingng.getBytes(StandardCharsets.UTF_8) ); 

Au lieu de CharSet.forName, l’utilisation de com.google.common.base.Charsets à partir de Google Goyave (http://code.google.com/p/guava-libraries/wiki/SsortingngsExplained#Charsets) est légèrement meilleure:

 InputStream is = new ByteArrayInputStream( mySsortingng.getBytes(Charsets.UTF_8) ); 

Le CharSet que vous utilisez dépend bien sûr de ce que vous allez faire avec InputStream.