打印流
println
方法来自于java.io.PrintStream
类
一、PrintStream类
PrintStream :【继承OutputStream】为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。
1.PrintStream特点:
- 只负责数据的输出,不负责数据的读取
- 与其他输出流不同,PrintStream 永远不会抛出 IOException
- 有特有的方法,print,println
void print(任意类型的值)
void println(任意类型的值并换行)
2.构造方法:
-
PrintStream(File file)
:输出的目的地是一个文件 -
PrintStream(OutputStream out)
:输出的目的地是一个字节输出流 -
PrintStream(String fileName)
:输出的目的地是一个文件路径
3.继承自父类的成员方法(省略public):
-
void close()
:关闭此输出流并释放与此流相关联的任何系统资源。 -
void flush()
:刷新此输出流并强制任何缓冲的输出字节被写出。 -
void write(byte[] b)
:将 b.length字节从指定的字节数组写入此输出流。 -
void write(byte[] b, int off, int len)
:从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。 -
abstract void write(int b)
:将指定的字节输出流。
4.注意:
- 如果使用继承自父类的write方法写数据,那么查看数据的时候会查询编码表,例如97->a
- 如果使用自己特有的方法print/println方法写数据,写的数据原样输出,例如97->97
5.改变打印流向
System.out
就是PrintStream
类型的,只不过它的流向是系统规定的,打印在控制台上。不过,既然是流对象,我们就可以玩一个"小把戏",改变它的流向
使用System.setOut方法改变输出语句的目的地改为参数中传递的打印流的目的地
-
static void setOut(PrintStream out)
:重新分配“标准”输出流。
// 创建打印流,指定文件名称
PrintStream ps = new PrintStream("F:\\test\\changestream.txt");
// 设置系统的打印流向,输出到ps.txt
System.setOut(ps);
System.out.println("你看,屏幕上没有打印!");