Comment transformer une valeur Ssortingng
en un InputStreamReader
?
ByteArrayInputStream fait également l’affaire:
InputStream is = new ByteArrayInputStream( mySsortingng.getBytes( charset ) );
J’ai aussi trouvé la classe IOUtils
apache commons, alors:
InputStreamReader isr = new InputStreamReader(IOUtils.toInputStream(mySsortingng));
Doit-il être spécifiquement un InputStreamReader? Que diriez-vous d’utiliser SsortingngReader ?
Sinon, vous pouvez utiliser SsortingngBufferInputStream , mais il est obsolète à cause de problèmes de conversion de caractères (c’est pourquoi vous devriez préférer SsortingngReader).
Même question que @Dan – pourquoi pas SsortingngReader?
S’il doit être InputStreamReader, alors:
Ssortingng charset = ...; // your charset byte[] bytes = ssortingng.getBytes(charset); ByteArrayInputStream bais = new ByteArrayInputStream(bytes); InputStreamReader isr = new InputStreamReader(bais);
Essayez-vous d’obtenir a) une fonctionnalité de Reader
de InputStreamReader
, ou b) InputStream
fonctionnalité InputStreamReader
d’ InputStreamReader
? Vous n’obtiendrez pas b). InputStreamReader
n’est pas un InputStream
.
Le but de InputStreamReader
est de prendre un InputStream
– une source d’octets – et de décoder les octets en caractères sous la forme d’un Reader
. Vous avez déjà vos données sous forme de caractères (votre chaîne d’origine). Encoder votre chaîne en octets et décoder les octets en caractères serait une opération redondante.
Si vous essayez d’extraire un Reader
de votre source, utilisez SsortingngReader
.
Si vous essayez d’obtenir un InputStream
(qui ne vous donne que des octets), utilisez apache commons IOUtils.toInputStream(..)
comme suggéré par d’autres réponses ici.
Vous pouvez essayer les Cactoos :
InputStream stream = new InputStreamOf(str);
Ensuite, si vous avez besoin d’un Reader
:
Reader reader = new ReaderOf(stream);