본문 바로가기

Java

파일 Copy ( 바이트기반 입/출력 )

package io.file.ch03;

import java.io.FileInputStream;
import java.io.FileOutputStream;

public class FileCopy {

	public static void main(String[] args) {
		
		// 스트림은 기본적으로 단방향
		// 입력 스트림, 출력 스트림 두개가 필요하다.
		
		// 파일 경로 (복사할 대상)
		String sourceFilePath = "D:\\workspace\\java\\teco_java\\a.zip";
		
		// 목적지 파일
		String desitnationFilePath = "copy1.zip";
		
		// 소요시간 확인
		long startTime = System.nanoTime();
		
		try (
				FileInputStream in = new FileInputStream(sourceFilePath);
				FileOutputStream out = new FileOutputStream(desitnationFilePath)
				){
			
			int data;
			
			while( (data = in.read()) != -1 ) {
				// 파일에 출력
				out.write(data);
			}
			
			System.out.println("입력 스트림 -> 출력 스트림 -> 입력 -> 출력의 반복 완료");
			
		} catch (Exception e) {
			
		}
		
		long endTime = System.nanoTime();
		long duration = endTime - startTime;
		System.out.println("복사의 소요 시간은 : " + duration);
		
		// 소요 시간을 초 단위로 변환 - > 포맷팅
		double seconds = duration / 1_000_000_000.0;
		
		// String 클래스에 format 메서드 사용해보기
		String resultFormat = String.format("소요 시간은 : %.6f 입니다.", seconds);
		
		// %는 포맷 지정자의 시작
		// f 지정자는 float, double 유형의 변수를 인자로 받아 처리 하겠다.
		System.out.println(resultFormat);
		
	}// end of main
	
}// end of class
728x90

'Java' 카테고리의 다른 글

파일 입력 스트림 ( 문자 기반 스트림 )  (0) 2024.05.20
문자 기반 스트림  (0) 2024.05.17
파일 출력 스트림 ( 바이트 기반 )  (0) 2024.05.16
파일 입력 스트림 ( 바이트 기반 )  (0) 2024.05.14
표준 입출력  (0) 2024.05.14