java io学习(十五) 打印输出流详解2014-08-12PrintStream(打印输出流)详解PrintStream 介绍PrintStream 是打印输出流,它继承于FilterOutputStream。PrintStream 是用来装饰其它输出流。它能为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。与其他输出流不同,PrintStream 永远不会抛出 IOException;它产生的IOException会被自身的函数所捕获并设置错误标记, 用户可以通过 checkError() 返回错误标记,从而查看PrintStream内部是否产生了IOException。另外,PrintStream 提供了自动flush 和 字符集设置功能。所谓自动flush,就是往PrintStream写入的数据会立刻调用flush()函数。PrintStream 函数列表
/** 构造函数 */// 将“输出流out”作为PrintStream的输出流,不会自动flush,并且采用默认字符集// 所谓“自动flush”,就是每次执行print(), println(), write()函数,都会调用flush()函数;// 而“不自动flush”,则需要我们手动调用flush()接口。PrintStream(OutputStream out)// 将“输出流out”作为PrintStream的输出流,自动flush,并且采用默认字符集。PrintStream(OutputStream out, boolean autoFlush)// 将“输出流out”作为PrintStream的输出流,自动flush,采用charsetName字符集。PrintStream(OutputStream out, boolean autoFlush, String charsetName)// 创建file对应的FileOutputStream,然后将该FileOutputStream作为PrintStream的输出流,不自动flush,采用默认字符集。PrintStream(File file)// 创建file对应的FileOutputStream,然后将该FileOutputStream作为PrintStream的输出流,不自动flush,采用charsetName字符集。PrintStream(File file, String charsetName)// 创建fileName对应的FileOutputStream,然后将该FileOutputStream作为PrintStream的输出流,不自动flush,采用默认字符集。PrintStream(String fileName)// 创建fileName对应的FileOutputStream,然后将该FileOutputStream作为PrintStream的输出流,不自动flush,采用charsetName字符集。PrintStream(String fileName, String charsetName) // 将“字符c”追加到“PrintStream输出流中”PrintStream append(char c)// 将“字符序列从start(包括)到end(不包括)的全部字符”追加到“PrintStream输出流中”PrintStream append(CharSequence charSequence, int start, int end)// 将“字符序列的全部字符”追加到“PrintStream输出流中”PrintStream append(CharSequence charSequence)// flush“PrintStream输出流缓冲中的数据”,并检查错误boolean checkError()// 关闭“PrintStream输出流”synchronized void close()// flush“PrintStream输出流缓冲中的数据”。// 例如,PrintStream装饰的是FileOutputStream,则调用flush时会将数据写入到文件中synchronized void flush()// 根据“Locale值(区域属性)”来格式化数据PrintStream format(Locale l, String format, Object... args)// 根据“默认的Locale值(区域属性)”来格式化数据PrintStream format(String format, Object... args)// 将“float数据f对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数void print(float f)// 将“double数据d对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数void print(double d)// 将“字符串数据str”写入到“PrintStream输出流”中,print实际调用的是write函数synchronized void print(String str)// 将“对象o对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数void print(Object o)// 将“字符c对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数void print(char c)// 将“字符数组chars对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数void print(char[] chars)// 将“long型数据l对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数void print(long l)// 将“int数据i对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数void print(int i)// 将“boolean数据b对应的字符串”写入到“PrintStream输出流”中,print实际调用的是write函数void print(boolean b)// 将“数据args”根据“Locale值(区域属性)”按照format格式化,并写入到“PrintStream输出流”中PrintStream printf(Locale l, String format, Object... args)// 将“数据args”根据“默认Locale值(区域属性)”按照format格式化,并写入到“PrintStream输出流”中PrintStream printf(String format, Object... args)// 将“换行符”写入到“PrintStream输出流”中,println实际调用的是write函数void println()// 将“float数据对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数void println(float f)// 将“int数据对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数void println(int i)// 将“long数据对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数void println(long l)// 将“对象o对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数void println(Object o)// 将“字符数组chars对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数void println(char[] chars)// 将“字符串str+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数synchronized void println(String str)// 将“字符c对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数void println(char c)// 将“double数据对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数void println(double d)// 将“boolean数据对应的字符串+换行符”写入到“PrintStream输出流”中,println实际调用的是write函数void println(boolean b)// 将数据oneByte写入到“PrintStream输出流”中。oneByte虽然是int类型,但实际只会写入一个字节synchronized void write(int oneByte)// 将“buffer中从offset开始的length个字节”写入到“PrintStream输出流”中。void write(byte[] buffer, int offset, int length)