IO流之学习(—)

来源:互联网 发布:sql调用存储过程 参数 编辑:程序博客网 时间:2024/05/29 18:48

    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流中的字节流的输出流的使用讲解完成。