java常用IO流简介(一)

IO流的分类

字符流:

Reder:输入流

    InputStreamReader:转换流,是字符流通向字节流的桥梁

    BufferedReader:缓冲流,特有方法:readLine()  

    FileReader:读取字符文件的便捷类

Writer:输出流

    OutputStreamWriter:转换流,是字符流通向字节流的桥梁

    BufferedWriter:缓冲流,特有方法:newLine(),write(String str)

    FileWriter:写入字符文件的便捷类

字节流

InputStream:

FileInputStream:从某个文件中获得输入字节用于读取诸如图像之类的原始字节流

BufferedInputStream:缓冲流,是InputStream的间接子类

OutputStream:

FileOutputStream:用于写入诸如图像之类的原始字节的流

BufferedOutputStream:缓冲流,是OutputStream的间接子类

字节流和字符流的区别 :

1.字节流读取的时候,读到一个字节就返回一个字节; 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在 UTF-8 码表中是 3 个字节)时。先去查指定的编码表,将查到的字符返回。
2.字节流可以处理所有类型数据,如:图片, MP3, AVI 视频文件,而字符流只能处理字符数据。只要是处理纯文本数据,就要优先考虑使用字符流,除此之外都用字节流。

一些特别的流

转换流

转换流只有字节流转换为字符流,因为字符流使用更方便,我们只会向更方便使用的方向转换,如InputStreamReader和OutputStreamReader

缓冲流

有关键字 Buffered,也是一种处理流,为其包装的流增加了缓存功能,提高了输入输出的效率,增加缓冲功能后需要使用 flush()才能将缓冲区中内容写入到实际的物理节点。但是,在现在版本的 Java 中,只需记得关闭输出流(调用 close()方法),就会自动执行输出流的 flush()方法,可以保证将缓冲区中内容写入。

对象流

有关键字 Object,主要用于将目标对象保存到磁盘中或允许在网络中直接传输对象时使用(对象序列化)

猜你喜欢

转载自blog.csdn.net/u013772906/article/details/78639879