IO流概述及其分类
IO流概述:
IO流用来处理设备之间的数据传输
Java对数据的操作是通过流的方式
IO流分类:
a:按照数据流向
输入流 读入数据
输出流 写出数据
b:按照数据类型
字节流 可以读写任何类型的文件 比如音频 视频 文本文件
字符流 只能读写文本文件
什么情况下使用哪种流呢?
如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流。其他用字节流。
如果你什么都不知道,就用字节流
IO流基类概述和FileOutputStream的构造方法
IO流基类概述:
a:字节流的抽象基类:
InputStream ,OutputStream。
b:字符流的抽象基类:
Reader , Writer。
注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
如:InputStream的子类FileInputStream。
如:Reader的子类FileReader。
FileOutputStream的构造方法
由一个案例引出使用IO流写数据,由于字节流先出现就先学习字节输出流基类OutputStream,
使用具体子类FileOutputStream
字节流复制文本文件
BufferedOutputStream写出数据
A:缓冲思想
字节流一次读写一个数组的速度明显比一次读写一个字节的速度快很多,
这是加入了数组这样的缓冲区效果,java本身在设计的时候,
也考虑到了这样的设计思想(装饰设计模式后面讲解),所以提供了字节缓冲区流
B:BufferedOutputStream的构造方法
查看API
BufferedOutputStream(OutputStream out)
feredInputStream读取数据
A:BufferedInputStream的构造方法
查看API
BufferedInputStream(InputStream in)