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
,