Fluxo de E / S: cópia de fluxo de bytes de vídeo

Fluxo de bytes:

Fluxo de saída de bytes: OutputStream

Existem muitas subclasses de OutputStream , e a subclasse FileOutputStream pode ser usada para gravar dados em um arquivo.

A classe FileOutputStream , o fluxo de saída do arquivo , é um fluxo de saída usado para gravar dados no arquivo .

  FileOutputStream (nome da string): crie um fluxo de arquivo de saída que grave dados em um arquivo com o nome especificado

Fluxo de entrada de bytes: InputStream

 

   int read (): lê um byte e retorna, retorna -1 se não houver byte.

 

  int read (byte []): leia um determinado número de bytes e armazene-os em uma matriz de bytes e retorne o número de bytes lidos.

Existem muitas subclasses de InputStream , e a subclasse FileInputStream pode ser usada para ler o conteúdo do arquivo.

FileInputStream obtém bytes de entrada de um arquivo no sistema de arquivos.

Aqui está um pequeno caso de cópia de vídeo de um fluxo de bytes:

 

importar java.io.FileInputStream;
importar java.io.FileOutputStream;
importar java.io.IOException;
importar java.util.Date;

public class Work01 {
 public static void main (String [] args) lança IOException {
  // Uma matriz uma cópia de matriz
  Date date = new Date ();
  System.out.println ("Hora de início:" + date.getTime ()) ;
  // Fonte de dados explícita
  FileInputStream fis = new FileInputStream ("D: \\ io1227 \\ video \\ AMG_GT_ALL_4_original.mp4");
  // Destino explícito
  FileOutputStream fos = new FileOutputStream ("D: \\ io1227 \\ mp4. mp4 ");
  // Começa a copiar
  byte [] bytes = novo byte [1024];
  int len ​​= 0;
  while ((len = fis.read (bytes))! = -1) {
   fos.write (bytes);
  }
  fis.close ();
  fos.close ();
  Date date2 = new Date ();
  System.out.println ("Hora de término da cópia da matriz:" + date2.getTime ());
  // Cópia de um byte e byte
  FileInputStream fis2 = new FileInputStream ("D: \\ io1227 \\ video \\ AMG_GT_ALL_4_original.mp4");
  FileOutputStream fos2 = novo FileOutputStream ("D: \\ io1227 \\ mp5.mp4");
  int len2 = 0;
  while ( (len2 = fis2.read ())! = -1) {
   fos2.write (len2);
  }
  fis2.close ();
  fos2.close ();
  Data date3 = new Date ();
  System.out.println (" Hora de término da cópia de bytes: "+ date3.getTime ());
  System.out.println (" Tempo de cópia da matriz: "+ (date2.getTime () -date.getTime ()) +" ms ");"
  System.out " .println ("Hora de copiar bytes:" + (date3.getTime () -data2.getTime ()) + "ms");
 }
}

 

Este é um pequeno vídeo com um tamanho de 2330 KB, é muito óbvio que a matriz é muito mais eficiente que bytes

Acho que você gosta

Origin www.cnblogs.com/nbkls/p/12743512.html
Recomendado
Clasificación