IO流基础篇
1. 概述
1.1 什么是IO流?
I 代表的就是Input 也就是输入
O 代表的就是Output 也就是输出
流 代表的是数据(字符或者字节) 一个字符等于两个字节 一个字节等于八位二进制数。
1.2 Java中IO的分类
根据数据的流向分为:输入流和输出流
- 输入流:把数据从其他设备上读取到内存中的流
- 输出流:把数据从内存中写出到其他设备的流
根据数据类型分为:字节流和字符流
1.3 Java中IO的顶级父类
输入流 | 输出流 | |
---|---|---|
字节流 | 字节输入流 InputStream |
字节输出流 OutputStream |
字符流 | 字符输入流 Reader |
字符输出流 Writer |
2. 字节流
2.1 字节是什么?
在计算机中,一切文件数据(文本、图片、视频等)存储时,都是以二进制数字的形式保存,都是一个一个的字节,那么传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要时刻明确,无论使用什么样的流对象,底层传输的始终是二进制数据。
2.2 字节输出流
java.io.OutputStream
抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地,它定义了字节输出流的基本共性功能方法。(基本共性功能方法请自行查阅API文档)
部分常见子类
- ByteArrayOutputStream
- FileOutputStream
- FilterOutputStream
- ObjectOutputStream
- PipedOutputStream
FileOutputStream
IO流最常应用于文件的读写,文件字节输出流用于文件的写操作
构造方法:
- FileOutputStream(String name) 创建一个向具有指定名称文件写入数据的文件输出流
- FileOutputStream(File file) 创建一个向指定File对象表示的文件中写入数据的文件输出流
- FileOutputStream(String name,boolean append) 创建一个向具有指定名称文件写入数据的文件输出流,第二个参数为是否追加读写。
- FileOutputStream(File file,boolean append) 创建一个向指定File对象表示的文件中写入数据的文件输出流,第二个参数为是否追加读写。
注意事项:根据构造方法中传递的文件/文件路径,会创建一个空的文件(但是路径如果不存在,则会抛出异常)
FileOutputStream fos = new FileOutputStream("c.txt");
FileOutputStream fos2 = new FileOutputStream("新建文件夹//c.txt");
第一个语句执行时,会在类路径下创建c.txt文件
第二个语句执行时,在类路径下,新建文件夹并不存在时就会抛出FileNotFoundException
2.3 字节输入流
java.io.InputStream
抽象类是表示字节输入流的所有类的超类,将指定位置的字节信息读取,它定义了字节输入流的基本共性功能方法。(基本共性功能方法请自行查阅API文档)
部分常见子类
- AudioInputStream
- ByteArrayInputStream
- FileInputStream
- FilterInputStream
- ObjectInputStream
- PipedInputStream
FileInputStream
IO流最常应用于文件的读写,文件字节输入流用于文件的读操作
构造方法:
- FileInputStream(