整理 Java I/O (十三):打印输出流 - PrintStream

PrintStream 为其他输出流添加了功能,使它们能够方便的打印各种数据值表示形式。它还提供其他两项功能。与其他输出不同,PrintStream 永远不会抛出IOExceotion ;而是,异常情况仅设置可通过 checkError 方法测试的内部标志。另外,为了自动刷新,可以创建一个 PrintStream;这意味着可在写入 byte 数组之后自动调用 flush 方法,可调用其中一个 println 方法,或写入一个换行符或字节\n

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

构造方法

  • 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)

    创建具有指定文件名称和字符集且不带自动行刷新的新打印流。

其他方法

  • append(char c)

    将指定字符添加到此输出流。
  • append(CharSequence csq)

    将指定字符序列添加到此输出流。
  • append(CharSequence csq, int start, int end)

    将指定字符序列的子序列添加到此输出流。
  • checkError()

    刷新流并检查其错误状态。
  • close()

    关闭流。
  • flush()

    刷新该流的缓冲。
  • format(Locale l, String format, Object... args)

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

    使用指定格式字符串和参数将格式化字符串写入此输出流中。
  • print(boolean b)

    打印 boolean 值。
  • print(char c)

    打印字符。
  • print(char[] s)

    打印字符数组。
  • print(double d)

    打印双精度浮点数。
  • print(float f)

    打印浮点数。
  • print(int i)

    打印整数。
  • print(long l)

    打印 long 整数。
  • print(Object obj)

    打印对象。
  • print(String s)

    打印字符串。
  • printf(Locale l, String format, Object... args)

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

    使用指定格式字符串和参数将格式化的字符串写入此输出流的便捷方法。
  • println()

    通过写入行分隔符字符串终止当前行。
  • println(boolean x)

    打印 boolean 值,然后终止行。
  • println(char x)

    打印字符,然后终止该行。
  • println(char[] x)

    打印字符数组,然后终止该行。
  • println(double x)

    打印 double,然后终止该行。
  • println(float x)

    打印 float,然后终止该行。
  • println(int x)

    打印整数,然后终止该行。
  • println(long x)

    打印 long,然后终止该行。
  • println(Object x)

    打印 Object,然后终止该行。
  • println(String x)

    打印 String,然后终止该行。
  • write(byte[] buf, int off, int len)

    将 len 字节从指定的初始偏移量为 off 的 byte 数组写入此流。
  • write(int b)

    将指定的字节写入此流。

简单示例

public class PrintStreamTest {

    private PrintStream writer;

    public static void main(String[] args) {
        new PrintStreamTest().testPrintWriter();
    }

    private void testPrintWriter() {
        try {
            writer = new PrintStream(new File("D:\\text.txt"));

            writer.append('A');
            writer.append("BCDE");
            writer.append("FGHIJK", 0, 5);
            System.out.println(writer.checkError());
            writer.print(false);
            writer.print('K');
            writer.print("LMNO".toCharArray());
            writer.print(100.1);
            writer.print(200);
            writer.print("PQRST");
            writer.println(true);
            writer.println('U');
            writer.write(65);
            writer.format("%tT", System.currentTimeMillis());
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            if (writer != null) {
                writer.close();
            }
        }

    }
}