Module  java.base
软件包  java.io

Class PrintStream

  • All Implemented Interfaces:
    CloseableFlushableAppendableAutoCloseable
    已知直接子类:
    LogStream


    public class PrintStream
    extends FilterOutputStream
    implements Appendable, Closeable
    A PrintStream将功能添加到另一个输出流,即能够方便地打印各种数据值的表示。 还提供了另外两个功能。 不像其他输出流,一个PrintStream从不抛出一个IOException ; 相反,异常情况只是设置一个可以通过checkError方法测试的内部标志。 可选地,可以创建PrintStream以便自动刷新; 这意味着flush方法在写入字节数组之后自动调用,其中一个println方法被调用,或换行字符( '\n' )被写入。

    使用平台的默认字符编码将PrintStream打印的所有字符转换为字节。 PrintWriter类应该在需要写入字符而不是字节的情况下使用。

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

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

      所有方法  接口方法  具体的方法 
      Modifier and Type 方法 描述
      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)
      len字节从指定的字节数组开始,从偏移 off开始写入此流。
      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 - 一个布尔值 如果为真,则每当写入一个字节数组时,输出缓冲区将被刷新,其中一个println方法被调用,或换行字符( '\n' )被写入
        encoding - 支持的名称 character encoding
        异常
        UnsupportedEncodingException - 如果不支持命名编码
        从以下版本开始:
        1.4
      • PrintStream

        public PrintStream​(String fileName)
                    throws FileNotFoundException
        使用指定的文件名创建新的打印流,无需自动换行。 这个方便的构造函数创建必要的中间件OutputStreamWriter ,它将使用Java虚拟机的这个实例使用default charset对字符进行编码。
        参数
        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 - 如果不支持命名的字符集
        从以下版本开始:
        1.5
      • PrintStream

        public PrintStream​(File file)
                    throws FileNotFoundException
        使用指定的文件创建一个新的打印流,而不需要自动换行。 这个便利的构造函数创建必要的中间件OutputStreamWriter ,它将使用Java虚拟机的这个实例使用default charset对字符进行编码。
        参数
        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
    • 方法详细信息

      • checkError

        public boolean checkError​()
        刷新流并检查其错误状态。 内部错误状态设置为true当底层输出流引发IOException而不是InterruptedIOException ,并且当调用setError方法时。 如果底层输出流上的操作会引发一个InterruptedIOException ,那么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)
        从指定的字节数组写入len字节,从偏移量off开始写入此流。 如果启用自动冲洗, flush调用flush方法。

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

        重写:
        write在类 FilterOutputStream
        参数
        buf - 一个字节数组
        off - off开始 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​(long l)
        打印一个长整数。 String.valueOf(long)生成的字符串根据平台的默认字符编码转换为字节,这些字节以write(int)的方式写入。
        参数
        l - 要打印的 long
        另请参见:
        Long.toString(long)
      • print

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

        public void print​(String s)
        打印字符串。 如果参数为null则打印字符串"null" 否则,根据平台的默认字符编码,字符串的字符将转换为字节,这些字节的格式完全按照write(int)的方式编写。
        参数
        s - 要打印的 String
      • 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 - a要打印的 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 - 如果格式字符串包含非法语法,则与给定参数不兼容的格式说明符,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式化错误的规范,请参阅格式化程序类规范的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 - 格式字符串中格式说明符引用的参数。 如果比格式说明符更多的参数,额外的参数将被忽略。 参数的数量是可变的,可能为零。 参数的最大数量受限于The Java™ Virtual Machine Specification定义的Java数组的最大维数。 一个null参数的行为取决于conversion
        结果
        这个输出流
        异常
        IllegalFormatException - 如果格式字符串包含非法语法,则与给定参数不兼容的格式说明符,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式化错误的规范,请参阅格式化程序类规范的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 - 如果格式字符串包含非法语法,则与给定参数不兼容的格式说明符,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式化错误的规范,请参阅格式化程序类规范的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 - 如果格式字符串包含非法语法,则与给定参数不兼容的格式说明符,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式化错误的规范,请参阅格式化程序类规范的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