Java IO基础总结
Java IO基础总结
Java中使用IO(输入输出)来读取和写入,根据数据走向可分为输入流和输出流,用户可以从输入流中中读取信息,但不能写它,相反,对输出流,只能往输入流写,而不能读它(输入流表示从一个源读取数据,输出流表示向一个目标写数据)。
Java.io包中几乎包含了所有操作输入、输出需要的类,所有这些类代表了输入源和输出目标。
IO流的分类
根据处理的数据类型的不同分为:字符流和字节流
根据数据流向不同分为:输入流和输出流
1、字节流可以处理所有数据类型的数据,在java中以Stream结尾
2、字符流处理文本数据,在java中以Reader和Writer结尾
字符流和字节流:
字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。 字节流和字符流的区别:
读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。
Java IO流的详细流程图:
输入流和输出流:
对输入流只能进行读的操作,对输出流只能进行写的操作,程序中需要根据待传输数据的不同特性而使用不同的流。
从Java IO流的流程图中可以看出:
输入字节流InputStream是所有的输入字节流的父类,它是一个抽象类。
输出字节流OutputStrea是所有的输出字节流的父类,它也是一个抽象类。
......
Java IO操作的详细地址:http://www.runoob.com/java/java-files-io.html