Comment puis-je "modifier" une intrigue? J'ai un fichier comme entrée, je voudrais modifier une variable et transmettre une nouvelle introuvable. P>
Par exemple, l'intrigue initiale contient Hello $ {VAR}. Ensuite, je veux "modifier" cette intrustream avec Var = "World", résultant d'un World Bonjour introuvable. P>
Quelle est la meilleure pratique pour faire cela? Merci. P>
3 Réponses :
the Si vous appelez votre nouvelle classe java.io code> est un et tous modèle de décorateur . Utilisez-le et créez une classe que
étend InputStream code> (peut-être
DataGuTream code>
ou meilleur, certains lecteur code>
puisque vous êtes réellement intéressé par des caractères, pas en octets, mais ALA), ajoutez un constructeur qui prend l'original InputStream code> et remplacer les méthodes
Lecture () CODE> Pour lire le flux d'origine, tampon-la-tampon à un certain degré (par exemple à partir de
$ { code> jusqu'à avec le premier code
} code>) puis déterminez la clé et renvoyez les données modifiées à la place. P>
formatedInputStream cod>, alors vous pouvez retourner
nouveau formatDeDInputStream (originalInputtream) code> à la fineuse et que l'utilisateur ne soit toujours pas d'attribuer et de l'utiliser en tant que
introuvable code>. p>
Salut @Ballusc est votre réponse applicable aux fichiers Excel aussi? J'aimerais modifier l'intrigue et l'envoyer à l'utilisateur. Voici mon message: Stackoverflow.com/questions/34893954/... Merci.
Vous pouvez essayer de sous-classement de la DOCS: P> Un filtreInputtream contient un autre flux d'entrée, qu'il utilise comme source de base de données, Voici un coup de poignard initial. Pas le meilleur moyen de le résoudre. Vous voulez probablement remplacer quelques méthodes supplémentaires et peut-être aller avec un lecteur à la place. (Ou peut-être même utiliser un scanner et traiter la ligne de fichier par ligne.) P> sortie: p>
Hello world, this is the value one 789 and this is the value two 123
C'est exactement pourquoi j'ai suggéré DataGuTretstream code> :) (qui est une sous-classe de celui-ci). Cependant, après tout, en utilisant un lecteur code> code> (
INPUTStreamreader code>) est plus facile.
Aha, je n'ai pas réalisé que Datatagutstream était un filtreInputtream. (A du sens cependant.) Alors, que fournit DataGuTretstream ce filtreInputStream ne le fait pas (c'est utile dans cette situation.)
Vous pouvez utiliser streamflyer qui prend en charge les remplacements de texte dans des flux de caractères hors de la boîte . P>