FileOutputStream,BufferedOutputStream,DataOutputStream的常用方法

一、什么是流?---IO流

1.作用是将数据从一个位置传输到另外一个位置。
          (1):流按照传输方向来分类:
                          输入流input:外界的数据传输(进入,读取)到当前程序中,
                          输出流ouput:当前程序的数据传输(写出)到外界。
          (2)按照读写单位分类
                         字节流:读写时最小单位为一个字节
                         字符流:读写时最小单位为一个字符
          (3)按照是否与外界设备直接相连分类:
                         节点流:直接与外界设备相连的流类型
                         处理流:间接的,一般内部都是封装了节点流。
          (4)按照效率高低分类:
                         低级流
                         高级流
   2.IO流:
                     File,RandomAccessFile都在java.io包。
                     IO流的一系列类型也都在此包下。
 
  3:父类
                 InputStream: 是字节输入流的父类(抽象类型)
                OutputStream:是字节输出流的父类(抽象类型)
                Reader:是字符输入流的父类(抽象类型)
                Writer:是字符输出流的父类(抽象类型)
4:文件输入输出流:(文件字节流)
           1) FileOutputStream
               构造器:
                        FileOutputStream(File file)
                        FileOutputStream(String filepath)
          注意:
                输出流的构造器的参数为两个时,第二个参数为 boolean append
                false时,表示不追加,从文件的头部进行写出操作。
                true时,表示追加,从文件的尾部进行写出操作。
                        1)  FileOutputStream(File file,boolean append)
                        2)FileOutputStream(String filepath,boolean append)
          2) FileInputStream
                  构造器:
                  FileInputStream(File file)
                  FileInputStream(String filepath)        
         3) 常用方法:    
             

               1)write(int num):写num二进制的低八位
               2)write(byte[] bytes)
               3)write(byte[] bytes,int index,int length)       
               4)int read():读取一个字节,放入int类型的低八位上
               5)read(byte[] bytes):读取有效个字节,存入字节数组中。
               6)int length = fis.read(bytes);
               7)String str = new String(bytes,"utf-8");

    4)相似: 随机读写文件类型也是对字节进行操作的;
 

 二、字节缓冲流

           1. 作用:
                  为了提高书写效率,减少交互次数,设计了一个缓冲区, 先将数据填入缓冲区,如果缓冲区的数据满了,在一次性
          清空出去。【该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节              写入调用底层系统。】
           2.重要构造器:此缓冲流要以文件字节流为参数。
                  1) BufferedInputStream(fis)
                  2)BufferedOutpuStream(fos)    
                  FileOutputStream fos = new FileOutputStream("b.txt",true/false);
         3.  常用方法:
                flush():作用是将缓冲区的数据清空出去。
                write(byte[]  b,int off,int  lne): 将指定的byte数字从偏移量off开始的len个字节写入此缓冲的输出流
                write(int b): 将指定的字节写入此缓冲的输出流。

        4 .特点:
                 流关闭前,会清空缓冲区内的数据。
       5.涉及到FileOutputStream和BufferedOutputStream两个流  关闭流的时候,只需要关闭缓冲流bos.close();
           因为: 
                最外层的流关闭,内层的流也会自动关闭
 

三、数据输入输出流

           1. 流:也是以字节流为参数的。
                       DataInputStream
                       DataOutputStream 
           2.构造器:
                    DataInputStream(InputStream in) 
                    DataOutputStream(OutputStream out)  
         3例如:            

             DataOutputStream dos = new DataOutputStream( new 
                              FileOutputStream("c.txt",true));
                 dos.writeInt(21);                                             
                 dos.writeUTF("你好!!");
                 dos.close();
                 DataInputStream dis =  new DataInputStream( new FileInputStream("c.txt"));
                 int num = dis.readInt();  
                String str = dis.readUTF();

4.常用方法
    写:
                 dos.writeInt(21);
                 dos.writeFloat(3.5F);
                dos.writeUTF("你好!!");
   读:
                int num = dis.readInt();
               float num1 = dis.readFloat();
               String str = dis.readUTF();

 

 

 

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值