IO流:字节流,缓冲流,数据流

一、什么是流?---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():作用是将缓冲区的数据清空出去。
        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();

dis.close();




猜你喜欢

转载自blog.csdn.net/xiaozelulu/article/details/80048350