В този урок ще научим за Java PrintWriter и неговите методи print () и printf () с помощта на примери.
В 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 е незадължителен булев параметър, който указва дали да се извършва автоматично промиване или нито
Забележка : Във всички горепосочени случаи 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 () Метод
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. Този писател за печат е свързан с файла 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. Принтерът за печат е свързан с файла output.txt .
PrintWriter output = new PrintWriter("output.txt");
За да отпечатаме форматирания текст във файла, използвахме printf()
метода.
Тук, когато стартираме програмата, файлът output.txt се пълни със следното съдържание.
I am 25 years old.
Други методи на PrintWriter
Метод | Описание |
---|---|
close() | затваря редактора за печат |
checkError() | проверява дали има грешка в писателя и връща булев резултат |
append() | добавя посочените данни към писателя |
За да научите повече, посетете Java PrintWriter (официална документация за Java).