Dans ce didacticiel, nous allons découvrir la classe Java PrintStream et ses méthodes print () et printf () à l'aide d'exemples.
La PrintStream
classe du java.io
package peut être utilisée pour écrire des données de sortie sous une forme généralement lisible (texte) au lieu d'octets.
Il étend la classe abstraite OutputStream
.
Fonctionnement de PrintStream
Contrairement aux autres flux de sortie, le PrintStream
convertit les données primitives (entier, caractère) au format texte au lieu d'octets. Il écrit ensuite ces données formatées dans le flux de sortie.
Et aussi, la PrintStream
classe ne lève aucune exception d'entrée / sortie. Au lieu de cela, nous devons utiliser la checkError()
méthode pour trouver une erreur.
Remarque : la PrintStream
classe a également une fonction de rinçage automatique. Cela signifie qu'il force le flux de sortie à écrire toutes les données vers la destination dans l'une des conditions suivantes:
- si le caractère de nouvelle ligne
est écrit dans le flux d'impression
- si la
println()
méthode est invoquée - si un tableau d'octets est écrit dans le flux d'impression
Créer un PrintStream
Pour créer un PrintStream
, nous devons d'abord importer le java.io.PrintStream
package. Une fois que nous avons importé le package, voici comment créer le flux d'impression.
1. Utilisation d'autres flux de sortie
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush);
Ici,
- nous avons créé un flux d'impression qui écrira des données formatées dans le fichier représenté par
FileOutputStream
- l'autoflush est un paramètre booléen facultatif qui spécifie s'il faut effectuer le rinçage automatique ou non
2. Utilisation du nom de fichier
// Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush);
Ici,
- nous avons créé un flux d'impression qui écrira des données formatées dans le fichier spécifié
- autoFlush est un paramètre booléen facultatif qui spécifie s'il faut ou non effectuer un autoflush
Remarque : Dans les deux cas, les PrintStream
données d'écriture dans le fichier en utilisant un encodage de caractères par défaut. Cependant, nous pouvons également spécifier le codage des caractères ( UTF8 ou UTF16 ).
// Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
Ici, nous avons utilisé la Charset
classe pour spécifier le codage des caractères. Pour en savoir plus, visitez Java Charset (documentation Java officielle).
Méthodes de PrintStream
La PrintStream
classe fournit diverses méthodes qui nous permettent d'imprimer des données sur la sortie.
print (), méthode
print()
- imprime les données spécifiées dans le flux de sortieprintln()
- imprime les données dans le flux de sortie avec un nouveau caractère de ligne à la fin
Exemple: méthode print () avec la classe System
class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) )
Production
Bonjour le monde.
Dans l'exemple ci-dessus, nous n'avons pas créé de flux d'impression. Cependant, nous pouvons utiliser la print()
méthode de la PrintStream
classe.
Vous vous demandez peut-être comment cela est possible. Eh bien, laissez-moi vous expliquer ce qui se passe ici.
Remarquez la ligne,
System.out.print(data);
Ici,
System
est une classe finale qui est chargée d'exécuter l'opération d'entrée / sortie standardout
est une variable de classe dePrintStream
type déclarée enSystem
classe
Maintenant comme out
est de PrintStream
type, nous pouvons l'utiliser pour appeler toutes les méthodes de PrintStream
classe.
Exemple: méthode print () avec la classe PrintStream
import java.io.PrintStream; class Main ( public static void main(String() args) ( String data = "This is a text inside the file."; try ( PrintStream output = new PrintStream("output.txt"); output.print(data); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Dans l'exemple ci-dessus, nous avons créé un flux d'impression nommé output. Le flux d'impression est lié au fichier output.txt .
PrintStream output = new PrintStream("output.txt");
Pour imprimer des données dans le fichier, nous avons utilisé la print()
méthode.
Ici, lorsque nous exécutons le programme, le fichier output.txt est rempli du contenu suivant.
This is a text inside the file.
printf (), méthode
La printf()
méthode peut être utilisée pour imprimer la chaîne formatée. Il comprend 2 paramètres: une chaîne formatée et des arguments. Par exemple,
printf("I am %d years old", 25);
Ici,
- J'ai% d ans est une chaîne formatée
- % d est une donnée entière dans la chaîne formatée
- 25 est un argument
La chaîne formatée comprend à la fois du texte et des données. Et, les arguments remplacent les données à l'intérieur de la chaîne formatée.
Par conséquent, le % d est remplacé par 25 .
Exemple: méthode printf () utilisant PrintStream
import java.io.PrintStream; class Main ( public static void main(String() args) ( try ( PrintStream output = new PrintStream("output.txt"); int age = 25; output.printf("I am %d years old.", age); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Dans l'exemple ci-dessus, nous avons créé un flux d'impression nommé output. Le flux d'impression est lié au fichier output.txt .
PrintStream output = new PrintStream("output.txt");
Pour imprimer le texte formaté dans le fichier, nous avons utilisé la printf()
méthode.
Ici, lorsque nous exécutons le programme, le fichier output.txt est rempli du contenu suivant.
I am 25 years old.
Autres méthodes de PrintStream
Méthodes | Descriptions |
---|---|
close() | ferme le flux d'impression |
checkError() | vérifie s'il y a une erreur dans le flux et renvoie un résultat booléen |
append() | ajoute les données spécifiées au flux |
Pour en savoir plus, visitez Java PrintStream (documentation Java officielle).