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).

Интересни статии...