写在开头
概述
- IO : 两个单词的缩写, input,output, input表示输入的意思,output表示输出
IO中的输入输出流向:
IO 能做设备之间的数据通信,java中所有的流都来自于java.io包中
IO分类:
流向上分类: 输入流(input)和输出流(output)
功能上分类: 字节流和字符流
字节流:
InputStream : 字节输入流,抽象类
OutputStream : 字节输出流,抽象类
字符流:
Reader : 字符输入流,抽象类
Writer: 字符输出流,抽象类IO流的书写规则
1) 使用流对象之前,先导包,java.io
2) 使用流对象时,需要抛出异常IOException
3) 使用流对象结束,一定记得关闭流资源( close() )
字节流
字节输入流
字节输入流InputStream
InputStream : 是一个抽象类,就表示字节的输入流,不能实例化对象的,于是需要一个子类FileInputStream,FileInputStream能操作磁盘上文件的读取操作
常用方法:
- read() : 表示每次从文件中读一个字节,返回这个字节的int类型的数据,当返回值结果是-1的时候,表示文件中没有内容了,读到最后了,其他情况都会返回一个int类型的数据
- read(byte[] b) : 表示每次从文件中读一个字节数组的长度,返回值类型是int类型,表示数组b每次读到了几个字节,如果返回值是-1,证明文件读完了
- read(byte[] b,int off,int length) : 表示每次从文件中读取字节数组b的一部分,int off表示从数组哪个索引开始读, int length : 表示读取的长度
- close() : 关闭流资源
字节输入流FileInputStream
FileInputStream : 从磁盘上的文件中,将数据读取到程序中
构造方法:
FileInputStream(File f) : 将File文件封装到字节输入流的对象中,下面可以读File中的文件内容
FileInputStream(String file) : 将String所表示的字符串内容封装到字节输入流的对象中,下面可以读String所表示的字符串的文件内容
常用方法:
- read() : 表示每次从文件中读一个字节,返回这个字节的int类型的数据,当返回值结果是-1的时候,表示文件中没有内容了,读到最后了,其他情况都会返回一个int类型的数据
- read(byte[] b) : 表示每次从文件中读一个字节数组的长度,返回值类型是int类型,表示数组b每次读到了几个字节,如果返回值是-1,证明文件读完了
- read(byte[] b,int off,int length) : 表示每次从文件中读取字节数组b的一部分,int off表示从数组哪个索引开始读, int length : 表示读取的长度
- close() : 关闭流资源
1 | import java.io.File; |
1 | //通过字节数组读取文件代码,未优化 |
使用字节数组读取文件的图解:
1 |
|
读取数组的一部分:
1 |
|
字符流
晚安
今天就到这里了,明天见,加油!