IO是是什么?
I/O输入/输出(Input/Output),用于数据传输。
IO类与接口都放置与在..\jre\lib\rt.jar!\java\io这个路径下面
Java的IO流分类分为字节流与字符流,字节流通过字节进行传输,字符流通过字符进行传输,如果采用字节流进行传输的话需要注意开发环境,比如说UTF-8的中英文占位3个字节,而GBK中的中英文占用2个字节。造成乱码的情况也就是读取不到正确单位的字节,导致文件出现错误。
字节流:InputStream,OutputStream 1字节=8bit
字符流:Readr,writer 1字符= 16bit
InputStream下面常用的三个子类:
FileInputStream:文件输入流
BufferedInputStream:缓冲字节输入流
ObjectInputStream:对象字节输入流
FileInputStream、ObjectInputStream的直接父类都为InputStream,但是BufferedInputStream的直接父类为FilterInputStream,FilterInputStream的直接父类为InputStream,所以BufferedInputStream也继承自InputStream。
FileInputStream的应用:
FileOutputStream应用:
节点流:对指定的数据源进行操作(FileReader/FileWriter)
处理流:链接在已经存在的流上进行数据操作,功能方面也更加的强大,更加的灵活(BufferedReader/BufferedWriter)
处理流的优点:
- 性能比节点流高,以增加缓冲的方式来提高输入与输出的效率。
- 操作更加的便捷,可以一次性输入和输出大批量的数据。
FileReader的案例
FileWriter的案例
BufferedReader案例
BufferedWriter案例: