Comment puis-je activer une Chaîne de caractères dans un InputStreamReader en java?
Comment puis-je transformer un String
valeur dans un InputStreamReader
?
Vous devez vous connecter pour publier un commentaire.
Comment puis-je transformer un String
valeur dans un InputStreamReader
?
Vous devez vous connecter pour publier un commentaire.
ByteArrayInputStream également fait le truc:
ByteArrayInputStream
: Car: JDK1.0 Il n'y a pas la moindre raison de supposer que cette classe est “depuis Java 1.4”. Le mauvais numéro de version est particulièrement étrange que Java 1.4 introduitNIO
et il fait peu de sens pour introduire une API et de ses conceptionnelle successeur au sein de la même version.J'ai aussi trouvé l'apache commons
IOUtils
classe , donc :new InputStreamReader(IOUtils.toInputStream(myString, "UTF-16"), "UTF-16")
serait sans perte.String
dans unbyte[]
tableau pour convertir les octets de retour àchar
s alors...IOUtils.toInputStream(myString, StandardCharsets.UTF_8)
aussi crée un ByteArrayInputStream:new ByteArrayInputStream(input.getBytes(Charsets.toCharset(encoding)))
.- T-il plus précisément un InputStreamReader? Comment sur l'utilisation de StringReader?
Sinon, vous pouvez utiliser StringBufferInputStream, mais c'est déconseillé en raison du caractère de problèmes de conversion (qui est pourquoi vous devriez préférer StringReader).
Même question que @Dan - pourquoi ne pas StringReader ?
Si elle doit être InputStreamReader, puis:
byte[] bytes = charset.getBytes();
Vous essayer d'obtenir un)
Reader
fonctionnalitésInputStreamReader
, ou b)InputStream
fonctionnalitésInputStreamReader
? Vous n'obtiendrez pas b).InputStreamReader
n'est pas unInputStream
.Le but de
InputStreamReader
est de prendre unInputStream
- une source d'octets et de décoder les octets de caractères sous la forme d'unReader
. Vous avez déjà vos données en tant que caractères (votre Chaîne d'origine). L'encodage de votre Chaîne en octets et le décodage des octets de retour à la station serait redondant de l'opération.Si vous essayez d'obtenir un
Reader
de votre source, utilisezStringReader
.Si vous essayez d'obtenir un
InputStream
(qui ne vous donne octets), l'utilisation d'apache commonsIOUtils.toInputStream(..)
comme suggéré par d'autres réponses ici.Vous pouvez essayer Cactoos:
Alors, si vous avez besoin d'un
Reader
: