English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве мы будем изучать класс Java PrintStream и его методы print() и printf() с помощью примеров.
Класс PrintStream пакета java.io можно использовать для записи данных вывода в виде текста, а не байтов, в обычном читаемом формате.
Он наследуется от абстрактного класса OutputStream.
В отличие от других потоков вывода, PrintStream преобразует исходные данные (целые числа, символы) в текстовый формат, а не в байты. Затем он записывает отформатированные данные в поток вывода.
И класс PrintStream не выбрасывает какие-либо исключения ввода/вывода. Вместо этого нам нужно использовать метод checkError(), чтобы найти любые ошибки.
Внимание:Класс PrintStream также имеет функцию автоматической стирки. Это означает, что он будет принудительно写入 все данные в целевую область в следующих случаях:
Если символ перевода строки \n записан в поток печати
Если вызывается метод println()
Если в поток печати была записана строка байтов
Чтобы создать PrintStream, нам нужно сначала импортировать пакет java.io.PrintStream. После импорта пакета мы можем создать поток печати здесь.
1. Использование другого потока вывода
// Создание FileOutputStream FileOutputStream file = new FileOutputStream(String file); // Создание PrintStream PrintStream output = new PrintStream(file, autoFlush);
printf("I %d years old", 25);
Мы уже создали поток печати, который записывает отформатированные данные в файл, представленный FileOutputStream
autoFlush — это опциональный булево параметр, который указывает на то, выполнять ли автоматическую стирку
2. Использование имени файла
// Создание PrintStream PrintStream output = new PrintStream(String file, boolean autoFlush);
printf("I %d years old", 25);
Мы создали поток печати, который записывает отформатированные данные в указанный файл
autoFlush — это опциональный булево параметр, который указывает на то, выполнять ли автоматическую стирку
Внимание:В обоих случаях PrintStream использует некоторые mặc định mã mã hóa để ghi dữ liệu vào tệp. Nhưng, chúng ta cũng có thể chỉ định mã mã hóa (UTF8 или UTF16)。
// Создание PrintStream с использованием определенного кодирования символов PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);
在这里,我们使用Charset该类来指定字符编码。
Методы класса PrintStream
Метод print()
print() - печать указанных данных в поток вывода
class Main { public static void main(String[] args) { Пример Внимание на эту строку, } }
String data = "Hello World.";
Результат вывода
Hello World.
В предыдущем примере мы еще не создали поток вывода. Но мы можем использовать метод print() класса PrintStream.
Вы, возможно,想知道, как это возможно. Ну что ж, позвольте мне объяснить, что здесь происходит.
Внимание на эту строку,
printf("I %d years old", 25);
System.out.print(data);
System - это final класс, ответственный за выполнение стандартных операций ввода/вывода
out - это классовая переменная типа PrintStream, объявленная в классе System
import java.io.PrintStream; class Main { public static void main(String[] args) { Пример: метод print() класса PrintStream try { PrintStream output = new PrintStream("output.txt"); String data = "This is a text inside the file."; output.close(); } catch(Exception e) { e.getStackTrace(); } } }
output.print(data);output.txtВ предыдущем примере мы создали поток вывода с именем output. Поток вывода связан с
PrintStream output = new PrintStream("output.txt");
Ссылка на файл.
Здесь, когда мы запускаем программу:output.txtФайл будет заполнен следующим содержимым.
Чтобы напечатать данные в файл, мы используем метод print().
Метод printf()
Метод printf() можно использовать для печати форматированных строк. Он содержит два параметра: форматированную строку и параметры. Например:
printf("I %d years old", 25);
здесь,
I am %d years old - это форматированная строка
%d является целым числом в форматированной строке
25 является параметром
Таким образом, форматированная строка включает текст и данные. А также, параметры заменяют данные в форматированной строке.%d заменить на 25。
import java.io.PrintStream; class Main { public static void main(String[] args) { try { PrintStream output = new PrintStream("output.txt"); int age = 25; output.printf("Я %d лет.", age); output.close(); } catch(Exception e) { e.getStackTrace(); } } }
В примере выше мы создали поток вывода с именем output. Поток вывода связан с файломoutput.txtСсылка.
PrintStream output = new PrintStream("output.txt");
Чтобы напечатать форматированный текст в файл, мы используем метод printf().
Здесь, когда мы запускаем программу:output.txtФайл будет заполнен следующим содержимым.
Я 25 лет.
Метод | Описание содержимого |
---|---|
close() | Закрыть поток вывода |
checkError() | Проверить наличие ошибок в потоке и вернуть булево значение |
append() | Добавить指定的 данные в поток |