编辑这个页面须要登录或更高权限!

Java PrintStream 类

在本教程中,我们将通过示例来学习Java PrintStream类及其print()和printf()方法。

java.io包的PrintStream类可用于以通常可读的形式(文本)而不是字节写入输出数据。

它继承了抽象类OutputStream。

PrintStream类是Java OutputStream的子类。

PrintStream 介绍

与其他输出流不同,PrintStream将原始数据(整数,字符)转换为文本格式而不是字节。 然后,它将格式化的数据写入输出流。

而且,PrintStream类不会抛出任何输入/输出异常。相反,我们需要使用checkError()方法来查找其中的任何错误。

注意:PrintStream该类还具有自动冲洗功能。这意味着它将在以下情况之一下强制输出流将所有数据写入目标:

  • 如果换行符\n写在打印流中

  • 如果println()方法被调用

  • 如果在打印流中写入了字节数组

创建一个PrintStream

为了创建一个PrintStream,我们必须首先导入java.io.PrintStream包。导入包后,便可以在此处创建打印流。

1.使用其他输出流

//创建一个FileOutputStream
FileOutputStream file = new FileOutputStream(String file);

//创建一个PrintStream
PrintStream output = new PrintStream(file, autoFlush);

这里,

  • 我们已经创建了一个打印流,它将格式化数据写入由FileOutputStream表示的文件

  • autoFlush是一个可选的布尔参数,用于指定是否执行自动冲洗

2.使用文件名

 //创建一个PrintStream
PrintStream output = new PrintStream(String file, boolean autoFlush);

这里,

  • 我们创建了一个打印流,它将格式化的数据写入指定的文件

  • autoFlush 是一个可选的布尔参数,用于指定是否执行自动冲洗

注意:在这两种情况下,PrintStream都使用一些默认的字符编码将数据写入文件。但是,我们也可以指定字符编码(UTF8或UTF16)。

//使用某种字符编码创建一个PrintStream
PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);

在这里,我们使用Charset该类来指定字符编码。

PrintStream的方法

PrintStream类提供各种方法,使我们能够打印数据的输出。

print()方法

  • print() - 将指定的数据打印到输出流

  • println() - 将数据以及末尾的换行符打印到输出流

示例:System类的print()方法

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

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

输出结果

Hello World.

在上面的示例中,我们尚未创建打印流。但是,我们可以使用PrintStream类的print()方法。

您可能想知道这怎么可能。好吧,让我解释一下这里发生了什么。

注意这一行,

System.out.print(data);

这里,

  • System是负责执行标准输入/输出操作的final类

  • out是在System类中声明的PrintStream类型的类变量

现在,由于out是PrintStream类型的,因此我们可以使用它来调用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();
        }
    }
}

在上面的示例中,我们创建了名为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);

这里,

  • I am %d years old - 是一个格式化字符串

  • %d 是格式化字符串中的整数数据

  • 25是参数

格式化的字符串包括文本和数据。 并且,参数替换格式化字符串中的数据。

因此,将%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();
        }
    }
}

在上面的示例中,我们创建了名为output的打印流。打印流与文件output.txt链接。

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

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

在这里,当我们运行程序时,output.txt文件将填充以下内容。

I am 25 years old.

PrintStream的其他方法

方法内容描述
close()关闭打印流
checkError()检查流中是否有错误,并返回布尔结果
append()将指定的数据附加到流

Java 菜鸟教程
Java 流程控制
Java 数组
Java 面向对象(I)
Java 面向对象(II)
Java 面向对象(III)
Java 异常处理
Java 列表(List)
Java Queue(队列)
Java Map集合
Java Set集合
Java 输入输出(I/O)
Java Reader/Writer
Java 其他主题