IO流是一种对数据进行处理的流,按照分类分为字节流和字符流。
字节流是数据存储在磁盘/电脑的格式,字符流是程序员输入输出的数据格式。
直白点说,字节流是电脑看得懂,字符流是程序员看得懂。
字节流和字符流两者的相似之处很多,学透其中一种流,另一种自然也能够驾驭。
字节流分为输出流(写)和输入流(读):
字节输出流OutputStream类是一个专门进行字节数据输出的类。
字节输出流InputStream类是一个专门进行字节数据读取的类。
相同之处:1.两者都是抽象类,需要它们的子类进行对象的实例化,这里使用FileOutputStream和FileInputStream进行实例化。
2.两者都提供了输出/输入的方法
3.打开一个流,相当打开磁盘资源进行读写操作,最后一定要关闭资源.close(),不然资源会泄露
字节输出流的子类FileOutputStream提供的方法:
1.创建或覆盖已有文件:public FileOutputStream(File file)throws FileNotFoundException
这是方法使用的第一次
这是方法调用的第二次,obviously,文字以及被覆盖
再有,getBytes()的使用在下一章会讲解
2.文件内容追加:public FileOutputStream(File file,boolean append)throws FileNotFoundException
添加true之后,可以实现文件内容的追加,可能有人觉得不换行很难受,使用\r\n即可,如下图
字节输出流OutputStream提供三个输出方法:
1. 输出单个字节:public abstract void write(int b)throws IOException
这里需要传入int类型的字节
如果传入比int范围更大的数据类型则不行,但是byte,short类型可以,因为他们可以自动转型成为int
2. 输出全部字节数组:public abstract void write(byte[] b)throws IOException
输出数组的方法只能使用byte类型,其他类型会报错
3.输出部分字节数组:public abstract void write(byte[] b,int off,int len)throws IOException
注意:int off和int len分别指输出的起点和数据长度
write方法指出,从下标为2开始,输出数据长度为2的字节,所以是cd
至此,IO流中的字节流的输出流的使用讲解完成。