Comment créer un InputStream à partir d'un tableau de chaînes de caractères
J'ai un tableau de chaînes de caractères ( en fait c'est une liste de tableaux ) et je voudrais créer un InputStream, chaque élément de la matrice d'une ligne dans le flux.
Comment puis-je faire dans le plus simple et le plus efficace?
Je suis de la matrice à partir d'un rappel, et que vous voulez ajouter à un fichier zip comme un ZipEntity (donc l'InputStream). J'ai aussi pensé à la méthode StringBuilder, mais j'espérais qu'il y aurait quelques plus agréable ( certains InputStream wrapper ) façon de le faire...
OriginalL'auteur zacsek | 2012-01-25
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un
StringBuilder
et ajouter toutes les chaînes avec des sauts de ligne entre les deux. Puis créer un flux d'entrée à l'aide denew ByteArrayInputStream( builder.toString().getBytes("UTF-8") );
Je suis en UTF-8, mais vous pourriez avoir à utiliser un codage différent, en fonction de vos données et de vos exigences.
Également note de ce que vous pourriez avoir à envelopper ce flux d'entrée dans le but de lire le contenu ligne par ligne.
Toutefois, si vous n'avez pas à utiliser un flux d'entrée juste de parcourir le tableau de chaîne serait probablement la easiert de code et plus facile à entretenir solution.
OriginalL'auteur Thomas
vous pouvez essayer d'utiliser la classe ByteArrayInputStream que vous pouvez donner un tableau d'octets. Mais d'abord, vous devez convertir vous de la Liste à un tableau d'octets. Essayez les solutions suivantes.
OriginalL'auteur Thomas Johan Eggum
La méthode la plus simple pourrait être de les coller ensemble dans un StringBuilder et ensuite passer la Chaîne résultante à StringReader.
OriginalL'auteur jbruni
Le meilleur moyen est d'utiliser la classe BufferedWriter.
Il est un exemple:
OriginalL'auteur eliangela