为什么需要IO流?
通常程序需要从外部获取/输出信息。
外部广泛:键盘、显示器、文件、磁盘、网络、另外一个程序。
信息:一个对象、串字符、图像、声音等。
我们使用java中的io包中的输入/输出流类就可以达到我们输入输出信息的目的。
IO流?
就向水流一样。java通过这个“管道”实现不同类型数据的输入和输出的目的。
输入流:
输出流:
读写数据的方法:
就像我们需要在桶里放水一样,我们需要一个管道接通水龙头,然后放水,接收满,完毕,关闭水龙头。java中的流也是类似的。
输入输出流可以从以下几个方面进行分类:
从流的方向来划分:
输入流
输出流
从流的分工划分:
节点流
处理流
处理流是连接在已存在的流(节点流或处理流)之上,对数据执行某种处理的共强大的功能。
从流的内容划分:
面向字符的流:专门用于字符数据
面向字节的流:一般
面向字符的流:
阴影部分为节点流。
面向字节的流:
InputStream和OutputStream:用来处理字节流的抽象基类,程序使用者两个类的子类读写8位的字节信息。
标准输入输出流对象:
System类的静态成员变量:
System.in:
System.out:
System.err:
标准I/O重新导向:
setIn(InputStream):设置标准输入流。
setOut(PrintStream):设置标准输出流。
setErr(PrintStream):设置标准错误输出流。
缓冲流:
换从流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法。
Print流: