У цьому посібнику ми дізнаємося про клас 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).