打印流属于输出流,分为字节打印流和字符打印流。
字节打印流
- 构造方法
这么多个构造方法,不要求记住,知道怎么用就可以了。
字节流底层是没有缓冲区,开不开自动刷新都一样。
听老司机说 工作3年了 一个流都没用过。所以听下有个印象就好。
- 成员方法
write(int b):常规方法,跟之前的一样,将指定的字节写出。
println(Xxx x):原样写出,换行,并自动刷新。
print(Xxx x):原样写出,并自动刷新。
printf():占位符%s。
字符打印流
PrintWriter
构造方法和成员方法跟字节流一样。
System.out.println()和打印流有什么关系吗?
打开源码可以发现System是一个类,并且out是一个静态变量,是一个字节打印流的对象,在运行时有JVM进行赋值,只不过打印到控制台了。这个流还有一个名称是标准输出流。
public static final PrintStream out = null;
fianl修饰基本数据类型,值不修改,修饰引用数据类型地址值不可变,属性可变。
可以看到上述out就是由fianl进行修饰的,一旦由虚拟机赋值之后out所指向的对象是不会发生变化的,所以不能关闭这个流。
打印流有哪几种,又各自有什么特点?
打印流只能写入,不能读取。
分为字节打印流和字符打印流。
字节打印流:写入数据时默认自动刷新;
字符打印流:写入数据时自动刷新需要手动开启。