io流

一、什么是流

   ①流是一组游戏的数据序列

   ② 以先进先出的方法发送信息的通道

 

二、java流的分类

     按照流向区分 :①输入流    OutputStream和Writer作为基类

                              ② 输出流    InputStream和Reader作为基类

 

         输入输出流是相对于计算机内存来说的

    按照处理数据单元划分:①字节流      字节输入流InputStream基类

                                                               字节输出流OutputStream基类

                                           ②字符流     字符输入流Reader基类

                                                               字符输出流Witer基类

     字节流是8位通用字节流,字符流是16位Unicode字符流

 

三、InputStream字节输入流(抽象类-基类)方法参考

      ① int read();  从输入流一个字节一个字节的读,返回的是该字节的整数表示形式,如果读到了输入流的末尾,返回-1

      ② int read(byte [] b)  从输入流读取若干字节,把这些字节保存到数组b中,返回的是读到的字节数,如果读到了输入流的末尾,返回-1

      ③int read(byte []b,int off,int len)   从输入流读取若干字节,把这些字节保存到数组b中,off指的是字节数组中开始保存数据的起始下标。len指读取的字节数目,返回的是读到的字节数,如果读到了输入流的                                                              末尾,返回-1 

 

四、练习  

    //用面向对象的方式,通过输入、输出流、缓冲流,读取\写入指定视频文件

    public  static void copyFile(String src1,String src2){
        FileInputStream fis=null;
        FileOutputStream fos=null;
        BufferedInputStream h1=null;
        BufferedOutputStream h2=null;
    
        try {
        fis=new FileInputStream(src1);
    fos=new FileOutputStream(src2);
            
             h1=new BufferedInputStream(fis);
         h2=new BufferedOutputStream(fos);
            byte [] ous=new byte[50];
            int len;
            while((len=h1.read(ous))!=-1){
                h2.write(ous, 0, len);
                h2.flush();
            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
          try {
            h2.close();
            h1.close();
            fos.close();
            fis.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        }
    }
    

    public static void main(String[] args) {
        String src1="C:\\Users\\18370\\Desktop\\视频\\篮球1.1.mp4";
        String src2="C:\\Users\\18370\\Desktop\\视频\\篮球2.mp4";
        long start=System.currentTimeMillis();
        Test.copyFile(src1, src2);
    
    long end=System.currentTimeMillis();
    System.out.println("共耗时:"+(end-start));
    }
}

 

posted @ 2020-05-24 17:35  小飞侠呀  阅读(142)  评论(0)    收藏  举报