模块  java.base
软件包  java.io

Class PrintStream

  • 实现的所有接口
    CloseableFlushableAppendableAutoCloseable
    已知直接子类:
    LogStream

    public class PrintStreamextends FilterOutputStreamimplements Appendable, Closeable
    PrintStream向另一个输出流添加功能,即能够方便地打印各种数据值的表示。 还提供了另外两个功能。 与其他输出流不同, PrintStream永远不会抛出IOException ; 相反,异常情况仅设置可通过checkError方法测试的内部标志。 可选地,可以创建PrintStream以便自动刷新; 这意味着flush字节数组写入方法后自动调用,所述一个println方法被调用时,或者一个新行字符或字节( '\n' )被写入。

    PrintStream打印的所有字符都使用给定的编码或字符集转换为字节,如果未指定,则使用平台的默认字符编码。 PrintWriter类应该在需要写入字符而不是字节的情况下使用。

    此类始终使用charset的默认替换字符串替换格式错误且不可映射的字符序列。 当需要更多地控制编码过程时,应使用CharsetEncoder类。

    从以下版本开始:
    1.0
    • 构造方法摘要

      构造方法  
      构造器 描述
      PrintStream​(File file)
      使用指定的文件创建没有自动行刷新的新打印流。
      PrintStream​(File file, String csn)
      使用指定的文件和字符集创建一个没有自动行刷新的新打印流。
      PrintStream​(File file, Charset charset)
      使用指定的文件和字符集创建一个没有自动行刷新的新打印流。
      PrintStream​(OutputStream out)
      创建新的打印流。
      PrintStream​(OutputStream out, boolean autoFlush)
      创建新的打印流。
      PrintStream​(OutputStream out, boolean autoFlush, String encoding)
      创建新的打印流。
      PrintStream​(OutputStream out, boolean autoFlush, Charset charset)
      创建一个新的打印流,具有指定的OutputStream,自动行刷新和字符集。
      PrintStream​(String fileName)
      使用指定的文件名创建没有自动行刷新的新打印流。
      PrintStream​(String fileName, String csn)
      使用指定的文件名和字符集创建一个没有自动行刷新的新打印流。
      PrintStream​(String fileName, Charset charset)
      使用指定的文件名和字符集创建一个没有自动行刷新的新打印流。
    • 方法摘要

      所有方法  实例方法 具体的方法 
      变量和类型 方法 描述
      PrintStream append​(char c)
      将指定的字符追加到此输出流。
      PrintStream append​(CharSequence csq)
      将指定的字符序列追加到此输出流。
      PrintStream append​(CharSequence csq, int start, int end)
      将指定字符序列的子序列追加到此输出流。
      boolean checkError()
      刷新流并检查其错误状态。
      protected void clearError()
      清除此流的内部错误状态。
      void close()
      关闭流。
      void flush()
      刷新流。
      PrintStream format​(String format, Object... args)
      使用指定的格式字符串和参数将格式化字符串写入此输出流。
      PrintStream format​(Locale l, String format, Object... args)
      使用指定的格式字符串和参数将格式化字符串写入此输出流。
      void print​(boolean b)
      打印一个布尔值。
      void print​(char c)
      打印一个角色。
      void print​(char[] s)
      打印一个字符数组。
      void print​(double d)
      打印双精度浮点数。
      void print​(float f)
      打印浮点数。
      void print​(int i)
      打印整数。
      void print​(long l)
      打印一个长整数。
      void print​(Object obj)
      打印一个对象。
      void print​(String s)
      打印一个字符串。
      PrintStream printf​(String format, Object... args)
      使用指定的格式字符串和参数将格式化字符串写入此输出流的便捷方法。
      PrintStream printf​(Locale l, String format, Object... args)
      使用指定的格式字符串和参数将格式化字符串写入此输出流的便捷方法。
      void println()
      通过写行分隔符字符串来终止当前行。
      void println​(boolean x)
      打印一个布尔值,然后终止该行。
      void println​(char x)
      打印一个字符,然后终止该行。
      void println​(char[] x)
      打印一个字符数组,然后终止该行。
      void println​(double x)
      打印一个双,然后终止该行。
      void println​(float x)
      打印一个浮点数,然后终止该行。
      void println​(int x)
      打印一个整数,然后终止该行。
      void println​(long x)
      打印一个长,然后终止该行。
      void println​(Object x)
      打印一个对象,然后终止该行。
      void println​(String x)
      打印一个字符串,然后终止该行。
      protected void setError()
      将流的错误状态设置为 true
      void write​(byte[] buf, int off, int len)
      将从偏移量为 off的指定字节数组中的 len字节写入此流。
      void write​(int b)
      将指定的字节写入此流。
    • 构造方法详细信息

      • PrintStream

        public PrintStream​(OutputStream out,                   boolean autoFlush)
        创建新的打印流。
        参数
        out - 将打印值和对象的输出流
        autoFlush - 布尔值; 如果为true,则只要写入字节数组,就会刷新输出缓冲区,调用其中一个println方法,或者写入换行符或字节( '\n'
        另请参见:
        PrintWriter(java.io.OutputStream, boolean)
      • PrintStream

        public PrintStream​(OutputStream out,                   boolean autoFlush,                   String encoding)            throws UnsupportedEncodingException
        创建新的打印流。
        参数
        out - 将打印值和对象的输出流
        autoFlush - 布尔值; 如果为true,则只要写入字节数组,就会刷新输出缓冲区,调用其中一个println方法,或者写入换行符或字节( '\n'
        encoding - 支持的 character encoding的名称
        异常
        UnsupportedEncodingException - 如果不支持指定的编码
        从以下版本开始:
        1.4
      • PrintStream

        public PrintStream​(OutputStream out,                   boolean autoFlush,                   Charset charset)
        创建一个新的打印流,具有指定的OutputStream,自动行刷新和字符集。 这个便利构造函数创建了必要的中间体OutputStreamWriter ,它将使用提供的字符集对字符进行编码。
        参数
        out - 将打印值和对象的输出流
        autoFlush - 布尔值; 如果为true,则每当写入字节数组时,将刷新输出缓冲区,调用其中一个println方法,或者写入换行符或字节( '\n'
        charset - A charset
        从以下版本开始:
        10
      • PrintStream

        public PrintStream​(String fileName)            throws FileNotFoundException
        使用指定的文件名创建没有自动行刷新的新打印流。 此便捷构造函数创建必要的中间体OutputStreamWriter ,它将使用default charset为此Java虚拟机实例编码字符。
        参数
        fileName - 要用作此打印流的目标的文件的名称。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。
        异常
        FileNotFoundException - 如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误
        SecurityException - 如果存在安全管理器且 checkWrite(fileName)拒绝对该文件的写访问权
        从以下版本开始:
        1.5
      • PrintStream

        public PrintStream​(String fileName,                   String csn)            throws FileNotFoundException,                   UnsupportedEncodingException
        使用指定的文件名和字符集创建一个没有自动行刷新的新打印流。 这个便利构造函数创建了必要的中间体OutputStreamWriter ,它将使用提供的字符集对字符进行编码。
        参数
        fileName - 用作此打印流目标的文件的名称。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。
        csn - 支持的charset的名称
        异常
        FileNotFoundException - 如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误
        SecurityException - 如果存在安全管理器且 checkWrite(fileName)拒绝对该文件的写访问权
        UnsupportedEncodingException - 如果不支持指定的charset
        从以下版本开始:
        1.5
      • PrintStream

        public PrintStream​(String fileName,                   Charset charset)            throws IOException
        使用指定的文件名和字符集创建一个没有自动行刷新的新打印流。 这个便利构造函数创建了必要的中间体OutputStreamWriter ,它将使用提供的字符集对字符进行编码。
        参数
        fileName - 要用作此打印流的目标的文件的名称。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。
        charset - A charset
        异常
        IOException - 如果在打开或创建文件时发生I / O错误
        SecurityException - 如果存在安全管理器且 checkWrite(fileName)拒绝对该文件的写访问权
        从以下版本开始:
        10
      • PrintStream

        public PrintStream​(File file)            throws FileNotFoundException
        使用指定的文件创建没有自动行刷新的新打印流。 此便捷构造函数创建必要的中间体OutputStreamWriter ,它将使用default charset为此Java虚拟机实例编码字符。
        参数
        file - 用作此打印流的目标的文件。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。
        异常
        FileNotFoundException - 如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误
        SecurityException - 如果存在安全管理器且 checkWrite(file.getPath())拒绝对该文件的写访问权
        从以下版本开始:
        1.5
      • PrintStream

        public PrintStream​(File file,                   String csn)            throws FileNotFoundException,                   UnsupportedEncodingException
        使用指定的文件和字符集创建一个没有自动行刷新的新打印流。 这个便利构造函数创建了必要的中间体OutputStreamWriter ,它将使用提供的字符集对字符进行编码。
        参数
        file - 用作此打印流的目标的文件。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。
        csn - 支持的charset的名称
        异常
        FileNotFoundException - 如果给定的文件对象不表示现有的可写常规文件,并且无法创建该名称的新常规文件,或者在打开或创建文件时发生其他错误
        SecurityException - 如果存在安全管理器且 checkWrite(file.getPath())拒绝对该文件的写访问权
        UnsupportedEncodingException - 如果不支持指定的字符集
        从以下版本开始:
        1.5
      • PrintStream

        public PrintStream​(File file,                   Charset charset)            throws IOException
        使用指定的文件和字符集创建一个没有自动行刷新的新打印流。 这个便利构造函数创建了必要的中间体OutputStreamWriter ,它将使用提供的字符集对字符进行编码。
        参数
        file - 用作此打印流的目标的文件。 如果文件存在,那么它将被截断为零大小; 否则,将创建一个新文件。 输出将写入文件并进行缓冲。
        charset - A charset
        异常
        IOException - 如果在打开或创建文件时发生I / O错误
        SecurityException - 如果存在安全管理器且 checkWrite(file.getPath())拒绝对该文件的写访问权
        从以下版本开始:
        10
    • 方法详细信息

      • checkError

        public boolean checkError()
        刷新流并检查其错误状态。 内部错误状态被设置为true当底层输出流抛出IOException比其他InterruptedIOException ,并且当setError被调用的方法。 如果基础输出流上的操作抛出InterruptedIOException ,则PrintStream通过执行以下PrintStream将异常转换回中断:
           Thread.currentThread().interrupt();  
        或等同物。
        结果
        true当且仅当该流遇到 IOException以外 InterruptedIOException ,或 setError方法已被调用
      • setError

        protected void setError()
        将流的错误状态设置为true

        此方法将导致后续调用checkError()返回true直到调用clearError()

        从以下版本开始:
        1.1
      • clearError

        protected void clearError()
        清除此流的内部错误状态。

        此方法将导致checkError()后续调用返回false直到另一个写操作失败并调用setError()

        从以下版本开始:
        1.6
      • write

        public void write​(int b)
        将指定的字节写入此流。 如果该字节是换行符并且启用了自动刷新, flush调用flush方法。

        注意,字节写为给定; 要编写将根据平台的默认字符编码进行翻译的字符,请使用print(char)println(char)方法。

        重写:
        writeFilterOutputStream
        参数
        b - 要写入的字节
        另请参见:
        print(char)println(char)
      • write

        public void write​(byte[] buf,                  int off,                  int len)
        将从偏移量off开始的指定字节数组中的len个字节写入此流。 如果启用了自动刷新, flush调用flush方法。

        请注意,字节将写为给定; 要编写将根据平台的默认字符编码进行翻译的字符,请使用print(char)println(char)方法。

        重写:
        writeFilterOutputStream
        参数
        buf - 字节数组
        off - 从中开始取字节的偏移量
        len - 要写入的字节数
        另请参见:
        FilterOutputStream.write(int)
      • print

        public void print​(boolean b)
        打印一个布尔值。 String.valueOf(boolean)生成的字符串根据平台的默认字符编码转换为字节,这些字节的编写方式与write(int)方法完全相同。
        参数
        b - 要打印的 boolean
      • print

        public void print​(char c)
        打印一个角色。 根据平台的默认字符编码将字符转换为一个或多个字节,这些字节的编写方式与write(int)方法完全相同。
        参数
        c - 要打印的 char
      • print

        public void print​(int i)
        打印整数。 String.valueOf(int)生成的字符串根据平台的默认字符编码转换为字节,这些字节的编写方式与write(int)方法完全相同。
        参数
        i - 要打印的 int
        另请参见:
        Integer.toString(int)
      • print

        public void print​(long l)
        打印一个长整数。 String.valueOf(long)生成的字符串根据平台的默认字符编码转换为字节,这些字节的编写方式与write(int)方法完全相同。
        参数
        l - 要打印的 long
        另请参见:
        Long.toString(long)
      • print

        public void print​(float f)
        打印浮点数。 String.valueOf(float)生成的字符串根据平台的默认字符编码转换为字节,这些字节的编写方式与write(int)方法完全相同。
        参数
        f - 要打印的 float
        另请参见:
        Float.toString(float)
      • print

        public void print​(double d)
        打印双精度浮点数。 String.valueOf(double)生成的字符串根据平台的默认字符编码转换为字节,这些字节的编写方式与write(int)方法完全相同。
        参数
        d - 要打印的 double
        另请参见:
        Double.toString(double)
      • print

        public void print​(char[] s)
        打印一个字符数组。 根据平台的默认字符编码将字符转换为字节,这些字节的编写方式与write(int)方法完全相同。
        参数
        s - 要打印的字符数组
        异常
        NullPointerException - 如果 snull
      • print

        public void print​(String s)
        打印一个字符串。 如果参数为null则打印字符串"null" 否则,根据平台的默认字符编码将字符串的字符转换为字节,并且这些字节的编写方式与write(int)方法完全相同。
        参数
        s - 要打印的 String
      • print

        public void print​(Object obj)
        打印一个对象。 String.valueOf(Object)方法生成的字符串根据平台的默认字符编码转换为字节,这些字节的编写方式与write(int)方法完全相同。
        参数
        obj - 要打印的 Object
        另请参见:
        Object.toString()
      • println

        public void println()
        通过写行分隔符字符串来终止当前行。 行分隔符字符串由系统属性line.separator定义,不一定是单个换行符( '\n' )。
      • println

        public void println​(boolean x)
        打印一个布尔值,然后终止该行。 此方法的行为就像它调用print(boolean)然后调用println() 一样
        参数
        x - 要打印的 boolean
      • println

        public void println​(char x)
        打印一个字符,然后终止该行。 此方法的行为就像调用print(char)然后调用println() 一样
        参数
        x - 要打印的 char
      • println

        public void println​(int x)
        打印一个整数,然后终止该行。 此方法的行为就像调用print(int)然后调用println() 一样
        参数
        x - 要打印的 int
      • println

        public void println​(long x)
        打印一个长,然后终止该行。 此方法的行为就像调用print(long)然后调用println() 一样
        参数
        x - 要打印的 long
      • println

        public void println​(float x)
        打印一个浮点数,然后终止该行。 此方法的行为就像调用print(float)然后调用println() 一样
        参数
        x - 要打印的 float
      • println

        public void println​(double x)
        打印一个双,然后终止该行。 此方法的行为就像调用print(double)然后调用println() 一样
        参数
        x - 要打印的 double
      • println

        public void println​(char[] x)
        打印一个字符数组,然后终止该行。 此方法的行为就像调用print(char[])然后调用println() 一样
        参数
        x - 要打印的字符数组。
      • println

        public void println​(String x)
        打印一个字符串,然后终止该行。 此方法的行为就像调用print(String)然后调用println() 一样
        参数
        x - 要打印的 String
      • println

        public void println​(Object x)
        打印一个对象,然后终止该行。 此方法首先调用String.valueOf(x)来获取打印对象的字符串值,然后表现为它调用print(String)然后调用println()
        参数
        x - 要打印的 Object
      • printf

        public PrintStream printf​(String format,                          Object... args)
        使用指定的格式字符串和参数将格式化字符串写入此输出流的便捷方法。

        调用out.printf(format, args)形式的此方法的行为与调用的方式完全相同

           out.format(format, args)  
        参数
        format - Format string syntax中描述的格式字符串
        args - 格式字符串中格式说明符引用的参数。 如果参数多于格式说明符,则忽略额外参数。 参数的数量是可变的,可以为零。 参数的最大数量受The Java™ Virtual Machine Specification定义的Java数组的最大维数限制。 null参数上的行为取决于conversion
        结果
        此输出流
        异常
        IllegalFormatException - 如果格式字符串包含非法语法,格式说明符与给定参数不兼容,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式错误的说明,请参阅formatter类规范的Details部分。
        NullPointerException - 如果 formatnull
        从以下版本开始:
        1.5
      • printf

        public PrintStream printf​(Locale l,                          String format,                          Object... args)
        使用指定的格式字符串和参数将格式化字符串写入此输出流的便捷方法。

        调用out.printf(l, format, args)形式的此方法的行为与调用的方式完全相同

           out.format(l, format, args)  
        参数
        l - 格式化期间应用的locale 如果lnull则不应用本地化。
        format - Format string syntax中描述的格式字符串
        args - 格式字符串中格式说明符引用的参数。 如果参数多于格式说明符,则忽略额外参数。 参数的数量是可变的,可以为零。 参数的最大数量受4067018017777定义的Java数组的最大维数限制。 null参数上的行为取决于conversion
        结果
        此输出流
        异常
        IllegalFormatException - 如果格式字符串包含非法语法,格式说明符与给定参数不兼容,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式错误的说明,请参阅formatter类规范的Details部分。
        NullPointerException - 如果 formatnull
        从以下版本开始:
        1.5
      • format

        public PrintStream format​(String format,                          Object... args)
        使用指定的格式字符串和参数将格式化字符串写入此输出流。

        始终使用的区域设置是Locale.getDefault(Locale.Category)返回的区域其中指定了FORMAT类别,而不管此对象上是否有任何其他格式化方法的调用。

        参数
        format - Format string syntax中描述的格式字符串
        args - 格式字符串中格式说明符引用的参数。 如果参数多于格式说明符,则忽略额外参数。 参数的数量是可变的,可以为零。 参数的最大数量受The Java™ Virtual Machine Specification定义的Java数组的最大维数限制。 null参数上的行为取决于conversion
        结果
        此输出流
        异常
        IllegalFormatException - 如果格式字符串包含非法语法,格式说明符与给定参数不兼容,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式错误的说明,请参阅formatter类规范的Details部分。
        NullPointerException - 如果 formatnull
        从以下版本开始:
        1.5
      • format

        public PrintStream format​(Locale l,                          String format,                          Object... args)
        使用指定的格式字符串和参数将格式化字符串写入此输出流。
        参数
        l - 格式化期间应用的locale 如果lnull则不应用本地化。
        format - Format string syntax中描述的格式字符串
        args - 格式字符串中格式说明符引用的参数。 如果参数多于格式说明符,则忽略额外参数。 参数的数量是可变的,可以为零。 参数的最大数量受The Java™ Virtual Machine Specification定义的Java数组的最大维数限制。 null参数上的行为取决于conversion
        结果
        此输出流
        异常
        IllegalFormatException - 如果格式字符串包含非法语法,格式说明符与给定参数不兼容,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式错误的说明,请参阅formatter类规范的Details部分。
        NullPointerException - 如果 formatnull
        从以下版本开始:
        1.5
      • append

        public PrintStream append​(CharSequence csq)
        将指定的字符序列追加到此输出流。

        调用out.append(csq)形式的此方法的行为与调用的方式完全相同

           out.print(csq.toString())  

        取决于规范toString字符序列csq ,整个序列可以不追加。 例如,调用然后toString一个字符缓冲区的方法将返回一个序列,其内容取决于缓冲区的位置和限制。

        Specified by:
        append ,界面 Appendable
        参数
        csq - 要追加的字符序列。 如果csqnull ,则将四个字符"null"附加到此输出流。
        结果
        此输出流
        从以下版本开始:
        1.5
      • append

        public PrintStream append​(CharSequence csq,                          int start,                          int end)
        将指定字符序列的子序列追加到此输出流。

        形式的这种方法的调用out.append(csq, start, end)csq不是null ,行为以完全相同的方式调用

           out.print(csq.subSequence(start, end).toString())  
        Specified by:
        append ,界面 Appendable
        参数
        csq - 将附加子序列的字符序列。 如果csqnull ,则将附加字符,就像csq包含四个字符"null"
        start - 子序列中第一个字符的索引
        end - 子序列中最后一个字符后面的字符的索引
        结果
        此输出流
        异常
        IndexOutOfBoundsException - 如果 startend为负数, start大于 end ,或 end大于 csq.length()
        从以下版本开始:
        1.5
      • append

        public PrintStream append​(char c)
        将指定的字符追加到此输出流。

        调用out.append(c)形式的此方法的行为与调用的方式完全相同

           out.print(c)  
        Specified by:
        append在接口 Appendable
        参数
        c - 要追加的16位字符
        结果
        此输出流
        从以下版本开始:
        1.5