Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java PrintStream 類

在本教程中,我們將通過示例來學(xué)習(xí)Java PrintStream類及其print()和printf()方法。

java.io包的PrintStream類可用于以通常可讀的形式(文本)而不是字節(jié)寫入輸出數(shù)據(jù)。

它繼承了抽象類OutputStream。

PrintStream類是Java OutputStream的子類。

PrintStream 介紹

與其他輸出流不同,PrintStream將原始數(shù)據(jù)(整數(shù),字符)轉(zhuǎn)換為文本格式而不是字節(jié)。 然后,它將格式化的數(shù)據(jù)寫入輸出流。

而且,PrintStream類不會(huì)拋出任何輸入/輸出異常。相反,我們需要使用checkError()方法來查找其中的任何錯(cuò)誤。

注意:PrintStream該類還具有自動(dòng)沖洗功能。這意味著它將在以下情況之一下強(qiáng)制輸出流將所有數(shù)據(jù)寫入目標(biāo):

  • 如果換行符\n寫在打印流中

  • 如果println()方法被調(diào)用

  • 如果在打印流中寫入了字節(jié)數(shù)組

創(chuàng)建一個(gè)PrintStream

為了創(chuàng)建一個(gè)PrintStream,我們必須首先導(dǎo)入java.io.PrintStream包。導(dǎo)入包后,便可以在此處創(chuàng)建打印流。

1.使用其他輸出流

//創(chuàng)建一個(gè)FileOutputStream
FileOutputStream file = new FileOutputStream(String file);

//創(chuàng)建一個(gè)PrintStream
PrintStream output = new PrintStream(file, autoFlush);

這里,

  • 我們已經(jīng)創(chuàng)建了一個(gè)打印流,它將格式化數(shù)據(jù)寫入由FileOutputStream表示的文件

  • autoFlush是一個(gè)可選的布爾參數(shù),用于指定是否執(zhí)行自動(dòng)沖洗

2.使用文件名

 //創(chuàng)建一個(gè)PrintStream
PrintStream output = new PrintStream(String file, boolean autoFlush);

這里,

  • 我們創(chuàng)建了一個(gè)打印流,它將格式化的數(shù)據(jù)寫入指定的文件

  • autoFlush 是一個(gè)可選的布爾參數(shù),用于指定是否執(zhí)行自動(dòng)沖洗

注意:在這兩種情況下,PrintStream都使用一些默認(rèn)的字符編碼將數(shù)據(jù)寫入文件。但是,我們也可以指定字符編碼(UTF8或UTF16)。

//使用某種字符編碼創(chuàng)建一個(gè)PrintStream
PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);

在這里,我們使用Charset該類來指定字符編碼。

PrintStream的方法

PrintStream類提供各種方法,使我們能夠打印數(shù)據(jù)的輸出。

print()方法

  • print() - 將指定的數(shù)據(jù)打印到輸出流

  • println() - 將數(shù)據(jù)以及末尾的換行符打印到輸出流

示例:System類的print()方法

class Main {
    public static void main(String[] args) {

        String data = "Hello World.";
        System.out.print(data);
    }
}

輸出結(jié)果

Hello World.

在上面的示例中,我們尚未創(chuàng)建打印流。但是,我們可以使用PrintStream類的print()方法。

您可能想知道這怎么可能。好吧,讓我解釋一下這里發(fā)生了什么。

注意這一行,

System.out.print(data);

這里,

  • System是負(fù)責(zé)執(zhí)行標(biāo)準(zhǔn)輸入/輸出操作的final類

  • out是在System類中聲明的PrintStream類型的類變量

現(xiàn)在,由于out是PrintStream類型的,因此我們可以使用它來調(diào)用PrintStream類的所有方法。

示例:PrintStream類的print()方法

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();
        }
    }
}

在上面的示例中,我們創(chuàng)建了名為output的打印流。打印流與output.txt文件鏈接。

PrintStream output = new PrintStream("output.txt");

要將數(shù)據(jù)打印到文件,我們使用了print()方法。

在這里,當(dāng)我們運(yùn)行程序時(shí),output.txt文件將填充以下內(nèi)容。

This is a text inside the file.

printf()方法

printf()方法可用于打印格式化的字符串。它包含2個(gè)參數(shù):格式化的字符串和參數(shù)。例如,

printf("I am %d years old", 25);

這里,

  • I am %d years old - 是一個(gè)格式化字符串

  • %d 是格式化字符串中的整數(shù)數(shù)據(jù)

  • 25是參數(shù)

格式化的字符串包括文本和數(shù)據(jù)。 并且,參數(shù)替換格式化字符串中的數(shù)據(jù)。

因此,將%d 替換為 25。

示例:使用PrintStream的printf()方法

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();
        }
    }
}

在上面的示例中,我們創(chuàng)建了名為output的打印流。打印流與文件output.txt鏈接。

PrintStream output = new PrintStream("output.txt");

要將格式化的文本打印到文件中,我們使用了printf()方法。

在這里,當(dāng)我們運(yùn)行程序時(shí),output.txt文件將填充以下內(nèi)容。

I am 25 years old.

PrintStream的其他方法

方法內(nèi)容描述
close()關(guān)閉打印流
checkError()檢查流中是否有錯(cuò)誤,并返回布爾結(jié)果
append()將指定的數(shù)據(jù)附加到流
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清