В този урок ще научим за класа Java PrintStream и неговите методи print () и printf () с помощта на примери.
В PrintStream
класа на java.io
пакета може да се използва за да напишете изходни данни в електронен формат често (текст) вместо байта.
Той разширява абстрактния клас OutputStream
.
Работа на PrintStream
За разлика от други изходни потоци, PrintStream
преобразува примитивните данни (цяло число, символ) в текстов формат вместо в байтове. След това записва тези форматирани данни в изходния поток.
И също така, PrintStream
класът не създава никакви изключения за вход / изход. Вместо това трябва да използваме checkError()
метода, за да намерим грешка в него.
Забележка : PrintStream
Класът има и функция за автоматично промиване. Това означава, че принуждава изходния поток да записва всички данни към местоназначението при едно от следните условия:
- ако
в потока за печат е записан знак за нов ред
- ако
println()
методът е извикан - ако в потока за печат е записан масив от байтове
Създайте PrintStream
За да създадем PrintStream
, първо трябва да импортираме java.io.PrintStream
пакета. След като импортираме пакета, ето как можем да създадем потока за печат.
1. Използване на други изходни потоци
// Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Creates a PrintStream PrintStream output = new PrintStream(file, autoFlush);
Тук,
- създадохме поток за печат, който ще записва форматирани данни във файла, представен от
FileOutputStream
- autoFlush е незадължителен булев параметър, който указва дали да се извършва автоматично промиване или не
2. Използване на име на файл
// Creates a PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush);
Тук,
- създадохме поток за печат, който ще записва форматирани данни в посочения файл
- autoFlush е незадължителен булев параметър, който указва дали да се извърши автоматично измиване или не
Забележка : И в двата случая PrintStream
запишете данните във файла, като използвате някакво кодиране на символи по подразбиране. Можем обаче да посочим и кодирането на символи ( UTF8 или UTF16 ).
// Creates a PrintStream using some character encoding PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
Тук използвахме Charset
класа, за да определим кодирането на символите. За да научите повече, посетете Java Charset (официална документация за Java).
Методи на PrintStream
В PrintStream
класа предоставя различни методи, които ни позволяват да печатате данни към изхода.
print () Метод
print()
- отпечатва посочените данни в изходния потокprintln()
- отпечатва данните в изходния поток заедно с нов ред символ в края
Пример: метод print () с клас System
class Main ( public static void main(String() args) ( String data = "Hello World."; System.out.print(data); ) )
Изход
Здравей свят.
В горния пример не сме създали поток за печат. Можем обаче да използваме print()
метода на PrintStream
класа.
Може би се чудите как е възможно това. Е, нека да обясня какво се случва тук.
Забележете линията,
System.out.print(data);
Тук,
System
е краен клас, който е отговорен за извършване на стандартна операция вход / изходout
е променлива на клас отPrintStream
тип, деклариран вSystem
клас
Сега, тъй като out
е от PrintStream
тип, можем да го използваме, за да извикаме всички методи на PrintStream
класа.
Пример: метод print () с клас 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(); ) ) )
В горния пример създадохме поток за печат с име output. Потокът за печат е свързан с файла output.txt .
PrintStream output = new PrintStream("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 (), използващ 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(); ) ) )
В горния пример създадохме поток за печат с име output. Потокът за печат е свързан с файла output.txt .
PrintStream output = new PrintStream("output.txt");
За да отпечатаме форматирания текст във файла, използвахме printf()
метода.
Тук, когато стартираме програмата, файлът output.txt се пълни със следното съдържание.
I am 25 years old.
Други методи на PrintStream
Методи | Описания |
---|---|
close() | затваря потока за печат |
checkError() | проверява дали има грешка в потока и връща булев резултат |
append() | добавя посочените данни към потока |
За да научите повече, посетете Java PrintStream (официална документация за Java).