Java PrintStream (з прикладами)

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

Цікаві статті...