Les API PrintStream et Printwriter sont presque les mêmes, les deux peuvent produire diverses formes de données, et la méthode de construction est presque la même
Printwriter a des paramètres d'écrivains acceptants supplémentaires
Comparaison de l'API:
Alors, quelle est la différence entre eux? De StackFlow
La signification principale est que les fonctions des deux classes sont fondamentalement les mêmes, et le Printwriter que PrintStream peut également être mis en œuvre, et les fonctions de Printwriter sont plus puissantes. Cependant, puisque Printwriter est apparu relativement tard, le système précédent. Utilisé PrintStream pour l'implémenter, de sorte que PrintStream n'a pas été abandonné pour la compatibilité.
La plus grande différence entre les deux classes est que PrintStream utilise le format de codage par défaut du système lors de la sortie des caractères et de la conversion des caractères en octets. Cela entraînera des problèmes lorsque les données sont transmises à une autre plate-forme et une autre plate-forme décode à l'aide d'un autre format de codage, et il existe des facteurs incontrôlables. Printwriter peut être spécifié par le programmeur lors du passage de l'écrivain, et le format de codage lors de la conversion des caractères en octets sera meilleur.
Le programme suivant montre comment les deux objets PrintStream et Printwriter font lors du traitement du même objectif de sortie. Le programme affichera quatre caractères "chinois simplifiés" à l'écran:
StreamWriterDemo.Java Package OnlyFun.Caterpillar; Importer Java.io. *; Public class streamwriterDemo {public static void main (String [] args) {try {byte [] sim = {(byte) 0xbc, (byte) 0xf2, // body (byte) 0xcc, (byte) 0xe5, // body) 0xcc, (byte) 0xe5, // body) 0xcc, (byte) 0xe5, // body) 0xcc, (byte) 0xE5, (octet) 0xd0, // Medium (octet) 0xce, (octet) 0xc4}; // Text inputStreamReader inputStreamReader = new InputStreamReader (new bytearRayInputStream (SIM), "GB2312"); printwriter printwriter = new printwriter (newputStreamwriter (System.out.out, "gb2312"); printStream = new PrintStream (System.out, true, "gb2312"); int dans; while ((in = inputStreamReader.read ())! = -1) gens {e.printStackTrace ();}}}Résumer
Ce qui précède est l'intégralité du contenu de cet article sur la différence entre PrintStream et Printwriter, et j'espère que cela sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!