Java PrintWriter (με παραδείγματα)

Σε αυτό το σεμινάριο, θα μάθουμε για το Java PrintWriter και τις μεθόδους εκτύπωσης () και εκτύπωσης () με τη βοήθεια παραδειγμάτων.

Η PrintWriterκλάση του java.ioπακέτου μπορεί να χρησιμοποιηθεί για την εγγραφή δεδομένων εξόδου σε μια κοινώς αναγνώσιμη μορφή (κείμενο).

Επεκτείνει την αφηρημένη τάξη Writer.

Εργασία του PrintWriter

Σε αντίθεση με άλλους συγγραφείς, PrintWriterμετατρέπει τα πρωτόγονα στοιχεία ( int, float, char, κλπ) σε μορφή κειμένου. Στη συνέχεια γράφει αυτά τα μορφοποιημένα δεδομένα στον συγγραφέα.

Επίσης, η PrintWriterτάξη δεν ρίχνει καμία εξαίρεση εισόδου / εξόδου. Αντ 'αυτού, πρέπει να χρησιμοποιήσουμε τη checkError()μέθοδο για να βρούμε οποιοδήποτε σφάλμα σε αυτήν.

Σημείωση : Η PrintWriterτάξη διαθέτει επίσης δυνατότητα αυτόματης έκπλυσης. Αυτό σημαίνει ότι αναγκάζει τον συγγραφέα να γράψει όλα τα δεδομένα στον προορισμό, εάν καλείται μία από τις μεθόδους println()ή printf().

Δημιουργήστε ένα PrintWriter

Για να δημιουργήσουμε ένα πρόγραμμα εκτύπωσης, πρέπει java.io.PrintWriterπρώτα να εισαγάγουμε το πακέτο. Μόλις εισαγάγουμε το πακέτο εδώ είναι πώς μπορούμε να δημιουργήσουμε τον εκτυπωτή εκτύπωσης.

1. Χρήση άλλων συγγραφέων

 // Creates a FileWriter FileWriter file = new FileWriter("output.txt"); // Creates a PrintWriter PrintWriter output = new PrintWriter(file, autoFlush); 

Εδώ,

  • έχουμε δημιουργήσει ένα πρόγραμμα εκτύπωσης που θα γράφει δεδομένα στο αρχείο που αντιπροσωπεύεται από το FileWriter
  • Το autoFlush είναι μια προαιρετική παράμετρος που καθορίζει εάν θα πραγματοποιηθεί αυτόματη έξαψη ή όχι

2. Χρήση άλλων ροών εξόδου

 // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates a PrintWriter PrintWriter output = new PrintWriter(file, autoFlush); 

Εδώ,

  • έχουμε δημιουργήσει ένα πρόγραμμα εκτύπωσης που θα γράφει δεδομένα στο αρχείο που αντιπροσωπεύεται από το FileOutputStream
  • Το autoFlush είναι μια προαιρετική παράμετρος που καθορίζει εάν θα πραγματοποιηθεί αυτόματη έξαψη ή όχι

3. Χρήση ονόματος αρχείου

 // Creates a PrintWriter PrintWriter output = new PrintWriter(String file, boolean autoFlush); 

Εδώ,

  • έχουμε δημιουργήσει ένα πρόγραμμα εκτύπωσης που θα γράφει δεδομένα στο καθορισμένο αρχείο
  • Το autoFlush είναι μια προαιρετική boolean παράμετρος που καθορίζει εάν θα εκτελέσει αυτόματη έξαψη ή όχι

Σημείωση : Σε όλες τις παραπάνω περιπτώσεις, τα PrintWriterδεδομένα εγγραφής στο αρχείο χρησιμοποιούν κάποια προεπιλεγμένη κωδικοποίηση χαρακτήρων. Ωστόσο, μπορούμε επίσης να καθορίσουμε την κωδικοποίηση χαρακτήρων ( UTF8 ή UTF16 ).

 // Creates a PrintWriter using some character encoding PrintWriter output = new PrintWriter(String file, boolean autoFlush, Charset cs); 

Εδώ, χρησιμοποιήσαμε την τάξη Charset για να καθορίσουμε την κωδικοποίηση χαρακτήρων. Για να μάθετε περισσότερα, επισκεφθείτε το Java Charset (επίσημη τεκμηρίωση Java).

Μέθοδοι PrintWriter

Η PrintWriterτάξη παρέχει διάφορες μεθόδους που μας επιτρέπουν να εκτυπώνουμε δεδομένα στην έξοδο.

εκτύπωση () Μέθοδος

  • print() - εκτυπώνει τα καθορισμένα δεδομένα στον συγγραφέα
  • println() - εκτυπώνει τα δεδομένα στον συγγραφέα μαζί με έναν νέο χαρακτήρα γραμμής στο τέλος

Για παράδειγμα,

 import java.io.PrintWriter; class Main ( public static void main(String() args) ( String data = "This is a text inside the file."; try ( PrintWriter output = new PrintWriter("output.txt"); output.print(data); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει έναν συγγραφέα εκτύπωσης που ονομάζεται έξοδος. Αυτός ο συγγραφέας εκτύπωσης συνδέεται με το αρχείο output.txt .

 PrintWriter output = new PrintWriter("output.txt"); 

Για να εκτυπώσετε δεδομένα στο αρχείο, χρησιμοποιήσαμε τη print()μέθοδο.

Εδώ όταν εκτελούμε το πρόγραμμα, το αρχείο output.txt είναι γεμάτο με το ακόλουθο περιεχόμενο.

 This is a text inside the file. 

printf () Μέθοδος

Η printf()μέθοδος μπορεί να χρησιμοποιηθεί για την εκτύπωση της μορφοποιημένης συμβολοσειράς. Περιλαμβάνει 2 παραμέτρους: μορφοποιημένη συμβολοσειρά και ορίσματα. Για παράδειγμα,

 printf("I am %d years old", 25); 

Εδώ,

  • Είμαι %dχρονών είναι μια διαμορφωμένη χορδή
  • %d είναι ακέραια δεδομένα στη διαμορφωμένη συμβολοσειρά
  • Το 25 είναι ένα επιχείρημα

Η μορφοποιημένη συμβολοσειρά περιλαμβάνει κείμενο και δεδομένα. Και, τα ορίσματα αντικαθιστούν τα δεδομένα μέσα στη διαμορφωμένη συμβολοσειρά.

Ως εκ τούτου, το % d αντικαθίσταται από το 25 .

Παράδειγμα: printf () Μέθοδος χρησιμοποιώντας το PrintWriter

 import java.io.PrintWriter; class Main ( public static void main(String() args) ( try ( PrintWriter output = new PrintWriter("output.txt"); int age = 25; output.printf("I am %d years old.", age); output.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Στο παραπάνω παράδειγμα, έχουμε δημιουργήσει έναν συγγραφέα εκτύπωσης που ονομάζεται έξοδος. Ο συγγραφέας εκτύπωσης συνδέεται με το αρχείο output.txt .

 PrintWriter output = new PrintWriter("output.txt"); 

Για να εκτυπώσετε το μορφοποιημένο κείμενο στο αρχείο, χρησιμοποιήσαμε τη printf()μέθοδο.

Εδώ όταν εκτελούμε το πρόγραμμα, το αρχείο output.txt είναι γεμάτο με το ακόλουθο περιεχόμενο.

 I am 25 years old. 

Άλλες μέθοδοι PrintWriter

Μέθοδος Περιγραφή
close() κλείνει τον εκτυπωτή
checkError() ελέγχει εάν υπάρχει σφάλμα στον συγγραφέα και επιστρέφει ένα δυαδικό αποτέλεσμα
append() προσαρτά τα συγκεκριμένα δεδομένα στον συγγραφέα

Για να μάθετε περισσότερα, επισκεφθείτε το Java PrintWriter (επίσημη τεκμηρίωση Java).

ενδιαφέροντα άρθρα...