Caso: Copiar video (Cuatro formas de copiar)

 

 Cuatro formas de copiar video y registrar el tiempo de cada método para copiar video

  1. El flujo de bytes básico lee y escribe un byte a la vez
  2. La secuencia de bytes básica lee y escribe una matriz de bytes a la vez
  3. La secuencia de búfer de bytes lee y escribe un byte a la vez
  4. La secuencia de búfer de bytes lee y escribe una matriz de bytes a la vez

 

public  class CopyAviDemo {
     public  static  void main (String [] args) lanza IOException {
         // Tiempo de inicio de grabación 
        largo startTime = System.currentTimeMillis (); 

        // Copiar video
 //         método1 ();       // Tiempo total transcurrido: 454 ms
 / /         method2 ();       // Tiempo total transcurrido: 2 ms
 //         método3 ();       // Tiempo total 
        transcurrido : 4 ms método4 ();       // Tiempo total transcurrido: 1 ms // Tiempo
         final de grabación 
        long endTime = System.currentTimeMillis (); 

        // Graba mucho tiempo
        System.out.println ("Tiempo total transcurrido:" + (endTime-startTime) + "millisecond" ); 
    } 
    // flujo de búfer de bytes lee y escribe una matriz de bytes a la vez 
    public  static  void method4 () lanza IOException {
         // create Objeto 
        BufferedInputStream bis = new BufferedInputStream ( nuevo FileInputStream ("F: \\ java \\ Copy video case.mp4" )); 
        BufferedOutputStream bos = new BufferedOutputStream ( nuevo FileOutputStream ("myFile \\ Copy video case.mp4" )); 

        byte [] bys = nuevo  byte [1024 ];
         int len;
        while ((len = bis.read (bys))! = -1 ) { 
            bos.write (bys, 0 , len); 
        } 
        bis.close (); 
        bos.close (); 
    } 
    // flujo de búfer de bytes una vez Leer y escribir un byte 
    public  static  void method3 () arroja IOException {
         // Crear objeto 
        BufferedInputStream bis = new BufferedInputStream ( nuevo FileInputStream ("F: \\ java \\ copy video case.mp4" )); 
        BufferedOutputStream bos = new BufferedOutputStream ( nuevo FileOutputStream ("myFile \\ copy video case.mp4" )); 

        //Leer y escribir datos 
        int by;
         while ((by = bis.read ())! = -1 ) { 
            bos.write (by); 
        } 
        bis.close (); 
        bos.close (); 
    } 
    // Flujo de bytes básico Leer y escribir una matriz de bytes a la vez 
    public  static  void method2 () arroja IOException {
         // Crear objeto 
        FileInputStream fis = new FileInputStream ("F: \\ java \\ copy video case.mp4" ); 
        FileOutputStream fos = new FileOutputStream ("myFile \\ Copiar video case.mp4 " ); 

        byte [] bys = nuevo  byte [1024];
         int len;
         while ((len = fis.read (bys))! = -1 ) { 
            fos.write (bys, 0 , len); 
        } 
        fis.close (); 
        fos.close (); 
    } 
    // El flujo de bytes básico lee y escribe un byte a la vez 
    public  static  void method1 () arroja IOException {
         // Crear objeto 
        FileInputStream fis = new FileInputStream ("F: \\ java \\ copy video case.mp4" ); 
        FileOutputStream fos = new FileOutputStream ("myFile \\ copy video case.mp4" ); 

        // Leer y escribir datos 
        intpor;
        while ((by = fis.read ())! = - 1 ) { 
            fos.write (by); 
        } 

        // 释放 资源
        fis.close (); 
        fos.close (); 
    } 
}

El archivo de video seleccionado es demasiado pequeño, por lo que la diferencia no es obvia.

El uso de secuencias de búfer de bytes para leer y escribir una matriz de bytes a la vez es lo más rápido

 

Supongo que te gusta

Origin www.cnblogs.com/pxy-1999/p/12710631.html
Recomendado
Clasificación