常用的I/O流类型
1.I/O流类型基础.(类中方法和子类查看java spring API)
抽象类java.io.InputStream:是所有字节输入流的父类,定义了以字节为基本单位读取数据的基本方法
抽象类java.io.OutputStream:所有字节输出流的类型的父类
抽象类java.io.Reader: 读取输入流类型的父类
抽象类java.io.Writer:写入输出流的父类
2.常用输入/输出的类型(效率不断提高)
2.1 FileInputStream/FileOutputStream
java.io.FileInputStream :一般是从本地磁盘读取字节数据。一般使用方法是:先创建FileInputStream 对象关联到要读取的文件,然后用read()方法读取字节数据,然后再进行别的操作。如果目标文件不存在,则报错。
java.io.FileOutputStream :将字节数据写到指定文件。如果文件存在则写到指定文件,如果目标文件不存在则自动创建该文件,如果目标文件所在目录也不存在,则报错
2.2 java.io.FileWriter/java.io.FileReader
FileReader:以字符为基本单读取文本文件(保存了的文本总是按照本地操作系统进行了默认编码所以读取时不会乱码)
FileWriter:将字符数据写入到文本文件(文本进行保存时以字节进行保存,解析时可能出现乱码现象)
2.3 java.io.BufferedReader/java.io.BufferedWriter
BufferedReader:是从字符输入流中读取文本,将多个字符存入缓存提供读取字符、数据或行的有效方法。
BufferedWriter:将字符输出流缓冲后写出。(缓冲区容量可以在构造方法中指定)
2.4java.io.InputStreamReader/java.io.OutputStreamWriter
InputStreamReader和OutputStreamWriter都是把字节流转为了字符流,但是为了高效常会用BufferedReader和BufferedWriter进行封装,一般实际中都用器子类FileWriter和FileReader(除键盘操作)
2.5 PrintStream和PrintWriter 都是输出打印的类
PrintStream只能封装OutputStream类型的字节输出流
PrintWriter 既可封装OutputStream类型的字节输出流,也能封装Writer类型的字符输出流
2.6java.io.DataInpuStream/java.io.DataOutputStream(注意其读取的文件类型是.data文件并不是文本文件)
DataInpuStream:能直接读取java基本类型和String类型的数据
DataOutputStream:能直接写入java基本类型和String类型的数据
2.7java.io.CharArrayReader/java.io.CharArrayWriter
3对象序列化
Java de I/O主要是对字节或字符经常读写操作。或者对可以处理基本的数据类型,但是都不能处理String以外的引用类型,“序列化”是将并行数据转换为串行数据的处理过程,而“对象序列化”是将对象的状态数据以字节流的形式进行处理,从而被I/O流操作