IO流简述
IO流
1.什么是IO流
java中所有的流都是子java.io下。首先我们看一下什么是IO,I就是Input,O就是Output,也就是输入输入的意思。
这里的输入输入都是相对内存而言
当我们从硬盘中的东西放在内存里,这个过程叫做输出(Input),输入的过程中会产生数据的流动我们叫做输入流(InputStream),输入过程我们叫做读(Read)
而我们在内存中的数据放在硬盘上,这个过程叫做输出(OutPut),输出的过程中会产生数据的流动我们叫做输出流(OutputStream),输出过程我们叫做写(Write)
2.IO流的分类
IO流有多种分类方式
- 一种是按照流的方向进行分类:以内存为参照物,往内存中去,叫做输入(Input),或者叫读(Read);从内存中出来叫做输出(Output),或者叫做写(Write);
- 另一种是按照读取方式的不同进行分类:有的流是按照字节的方式进行读取数据,一次可以读取一个字节byte等同于一次读取8个二进制位,这种流是万能的,字节流什么类型的文件都可以读取。有的流是按照字符的方式读取数据的,一次读取一个字符,字符流是为了方便读取普通文本文件而存在的。这种流不能读取:图片、声音、视频等文件。只能读取txt文件,word文件都无法读取。
3.IO流下的四大抽象类:
- java.io.InputStream 字节输入流
- java.io.OutputStream 字节输出流
- java.io.Reader 字符输入流
- java.io.Writer 字符输入流
所有的流都实现了java.io.Closeable接口,都是可关闭的,都有close()方法。用完流一定要关闭,否则会浪费资源!
所有的输出流都实现了java.io.Flushable接口,都是可刷新的,都有flush()方法。输出流在最终输出之后,要flush()刷新一下,刷新的作用就是清空管道(强制将剩余的数据强行输出完)。如果没有flush()可能会丢失数据
4.java.io包下需要掌握的16个流
文件专属 | FileReader | FileWriter | FileInputStream | FileOutputStream |
转换流 | InputStreamReader | OutputStreamWriter | ||
缓冲流专属 | BufferReader | BufferWriter | BufferInputStream | BufferOutputStream |
数据流专属 | DataInputStream | DataOutoputStream | ||
标准数据流 | PrintWriter | PrintStream | ||
对象专属流 | ObjectInputStream | ObjectOutputStream |
本文来自博客园,作者:星余明,转载请注明原文链接:https://www.cnblogs.com/lingstar/p/16502806.html