IOストリーム:バイトストリームコピービデオ

バイトストリーム:

バイト出力ストリーム:OutputStream

OutputStreamには多くのサブクラスがあり、サブクラスFileOutputStream を使用してデータをファイルに書き込むことができます。

たFileOutputStreamのクラス、すなわち、ファイル出力ストリームは書き込みデータに使用されているファイルの出力ストリーム。

  FileOutputStream(文字列名):指定した名前のファイルにデータを書き込む出力ファイルストリームを作成します

バイト入力ストリーム:InputStream

 

   int read():バイトを読み取って戻り、バイトがない場合は-1を返します。

 

  int read(バイト[]):特定のバイト数を読み取り、それらをバイト配列に格納して、読み取ったバイト数を返します。

InputStreamには多くのサブクラスがあり、サブクラスFileInputStream を使用してファイルの内容を読み取ることができます。

FileInputStream は、ファイルシステム内のファイルから入力バイトを取得します。

バイトストリームからビデオをコピーする小さなケースを次に示します。

 

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

public class Work01 {
 public static void main(String [] args)throws IOException {
  // 1つの配列1つの配列のコピー
  Date date = new Date();
  System.out.println( "Start time:" + date.getTime()) ;
  //明示的なデータソース
  FileInputStream fis = new FileInputStream( "D:\\ io1227 \\ video \\ AMG_GT_ALL_4_original.mp4");
  //明示的な宛先
  FileOutputStream fos = new FileOutputStream( "D:\\ io1227 \\ mp4。 mp4 ");
  //
  バイトのコピーを開始[]バイト=新しいバイト[1024];
  int len = 0;
  while((len = fis.read(bytes))!= -1){
   fos.write(bytes);
  }
  fis.close();
  fos.close();
  Date date2 = new Date();
  System.out.println( "Array copy end time:" + date2.getTime());
  // 1バイト1バイトコピー
  FileInputStream fis2 = new FileInputStream( "D:\\ io1227 \\ video \\ AMG_GT_ALL_4_original.mp4");
  FileOutputStream fos2 = new FileOutputStream( "D:\\ io1227 \\ mp5.mp4");
  int len2 = 0;
  while( (len2 = fis2.read())!= -1){
   fos2.write(len2);
  }
  fis2.close();
  fos2.close();
  日付date3 = new Date();
  System.out.println( "バイトコピーの終了時間: "+ date3.getTime());
  System.out.println("配列のコピー時間: "+(date2.getTime()-date.getTime())+" ms ");
  System.out .println( "バイトをコピーする時間:" +(date3.getTime()-date2.getTime())+ "ms");
 }
}

 

これはサイズが2330KBの小さなビデオです。配列がバイトよりもはるかに効率的であることは明らかです

おすすめ

転載: www.cnblogs.com/nbkls/p/12743512.html