Javaベースのバイトストリームによるファイルコピー

1723 ワード

Javaベースのバイトストリームによるファイルコピー
JAvaのファイルコピーはIOストリームに基づいて実現され、バイトストリームを利用してファイルコピーを完了するにはFileInputStreamとFileOutputStreamクラスが必要である
を使用して、標準ファイルとターゲットディレクトリを指定し、標準ファイルをターゲットディレクトリにコピーし、同じ名前のファイルを新規作成します.
せっけい構想
  • ソースファイルの入力ストリーム(FileInputStream)
  • を取得する
  • ターゲットファイルの出力ストリームを取得し、新しいファイル
  • を作成する.
  • バイトバッファ
  • を宣言する
  • ループ読み出しおよび書き込み
  • 出力ストリームオフ
  • 入力ストリームは
  • を閉じる.
    コードは次のとおりです.
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class FileCopy {
    
    	/**
    	 *             
    	 * 
    	 * @param sourceFile    (    )
    	 * @param targetDir      (  )
    	 * @throws IOException
    	 */
    	public void copy(File sourceFile, File targetDir) {
    		FileInputStream fis = null;
    		FileOutputStream fos = null;
    		try {
    			//          
    			fis = new FileInputStream(sourceFile);
    			//           
    			fos = new FileOutputStream(new File(targetDir, sourceFile.getName()));
    			//        
    			byte[] b = new byte[1024];
    			//             
    			int len = 0;
    			//         
    			while ((len = fis.read(b)) != -1) {
    				fos.write(b, 0, len);
    			}
    
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if (fos != null) {
    					fos.close();
    				}
    				if (fis != null) {
    					fis.close();
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    
    	public static void main(String[] args) throws IOException {
    		File source = new File("D:\\day18 20190727\\20190727\\video\\01_    .avi");
    		File target = new File("D:\\javacode\\doc");
    		new FileCopy().copy(source, target);
    	}
    
    }