1.io流作用:用于读写文件中的数据(可以读写文件,或网络中的数据...)
2.IO 流中,以程序为参照物进行读写
3.IO流分类:(1)按流的方向 可分为输入流(读取),输出流(写出)
(2)按操作文件类型 可分为字节流(可操所有类型文件) 字符流(纯文本文件)
4.
四大抽象类
编辑 播报
字符流:
Reader
Writer
字节流:
(输入数据)
(输出数据)
5.输入流
编辑 播报
InputStream的基本方法
int read()throws IOException
读取一个字节以整数形式返回,如果返回-1已到输入流的末尾
voidclose()throwsIOException
关闭流释放内存资源
longskip(longn)throwsIOException
跳过n个字节不读
输出流
编辑 播报
OutputStream的基本方法
voidwrite(intb)throwsIOException
向输出流写入一个字节数据
voidflush()throws IOException
将输出流中缓冲的数据全部写出到目的地
Writer
编辑 播报
Writer的基本方法
void write(int c)
throwsIOException
向输出流写入一个字符数据
void write
(String str)
throwsIOException
将一个字符串中的字
符写入到输出流
void write
(String str,
int offset,
int length)
将一个字符串从offset开始的length个字符写入到输出流
void flush()
throwsIOException
将输出流中缓冲的数据全部写出到目的地
Reader
编辑 播报
Reader的基本方法
int
read
()
throws
IOException
读取一个字符以整数形式返回,如
果返回
-1
已到输入流的末尾
一、两者的组成不同:
1、字节流的组成:字节流是由字节组成的。
2、字符流的组成:字符流是由字符组成的。
二、两者的处理不同:
1、字节流的处理:主要用在处理二进制数据,它是按字节来处理的但实际中很多的数据是文本。
2、字符流的处理:按虚拟机的encode来处理,也就是要进行字符集的转化。
Java里字符由两个字节组成. 1字符=2字节
JAVA中的字节流是采用ASCII编码的,
字符流是采用好似UTF编码,支持中文的
字节流与字符流主要的区别是他们的的处理方式
字节流是最基本的,采用ASCII编码,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据,它是按字节来处理的
但实际中很多的数据是文本,又提出了字符流的概念,采用Unicode编码.它是按虚拟机的encode来处理,也就是要进行字符集的转化
这两个之间通过 InputStreamReader,OutputStreamWriter来关联,实际上是通过byte[]和String来关联。
下面来谈一组新的流:转换流
转换流:作用:将字节流和字符流进行转换。
转换流 属于 字节流还是字符流?属于字符流
InputStreamReader 作用:字节输入流 -->字符输入流
OutputStreamWriter 作用: 字符输出流 -->字节输出流
最后来谈谈,对象流
对象流:ObjectInputStream,ObjectInputStream
用于存储和读取基本数据类型数据或对象的处理流。
它的强大之处就是可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来。