목적


기본적인 File 입출력을 사용해보면서 익히기

 

 

기본 사용


package file;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.file.FileSystems;

public class FileEx01 {
	public static void main(String[] args) {
		FileInputStream fis = null;
		FileOutputStream fos = null;
		
		try {
			fis = new FileInputStream("input.txt");
			System.out.println("운영체제별 디렉토리 구분자 ::: "+FileSystems.getDefault().getSeparator());
			fos = new FileOutputStream("src\\file/output.txt");
			int i;
			while((i=fis.read()) != -1 ) {
				fos.write(i);
			}
		}catch (Exception e) {
			System.out.println(e.getMessage());
		}finally {
			try {
				fis.close();
				fos.close();/*반드시 닫아줘야 합니다.*/
			} catch (Exception e2) {
				System.out.println(e2.getMessage());
			}
		}
	}
}

 

 

응용 사용


public class FileEx02 {
	public static void main(String[] args) {
		
		Long startTime = System.currentTimeMillis();
		
		try (BufferedInputStream bis= new BufferedInputStream(new FileInputStream("C:\\Users\\kks\\Downloads\\input\\원노트.zip"));
			BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("C:\\\\Users\\\\kks\\\\Downloads\\\\output\\\\원노트.zip"), 1024*4);
				) {
			int i;
			
			while((i=bis.read()) != -1 ) {
				bos.write(i);
				
			}
		}catch (Exception e) {
			System.out.println(e.getMessage());
		}finally {
			System.out.println("버퍼 사용 파일 입출력 완료 ::: " + ((System.currentTimeMillis()-startTime)/1000 ));
		}
	}
}

결과 = 버퍼 사용 파일 입출력 완료 ::: 35

파일 크기는 1.67GB

 

package file;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.net.URL;

public class FileEx02 {
	public static void main(String[] args) {
		
		Long startTime = System.currentTimeMillis();
		
		try (BufferedInputStream bis= new BufferedInputStream(new URL("https://upload.wikimedia.org/wikipedia/commons/6/62/%EC%84%9C%EC%9A%B8%ED%8A%B9%EB%B3%84%EC%8B%9C_%EC%A0%84%EA%B2%BD_%EC%82%AC%EC%A7%84_%EC%82%AC%EB%B3%B8_-%EC%84%9C%EC%9A%B8%EC%84%B1%EA%B3%BD1.jpg").openStream());
			BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("src/pic.jpg"), 1024*4);
				) {
			int i;
			
			while((i=bis.read()) != -1 ) {
				bos.write(i);
				
			}
		}catch (Exception e) {
			System.out.println(e.getMessage());
		}finally {
			System.out.println("무료 사진 가져오기!");
		}
	}
}

데이터 소스가 로컬이건, 인터넷이건 결국은 입출력 구조를 따릅니다.

 

 

 

 

 

핵심 키워드

  • try - with - resource 
  • AutoCloseable, Closeable
  • 버퍼스트림(보조스트림)

 

 
 

닫기 가능

 

'개발 > 자바(JAVA)' 카테고리의 다른 글

파일 옮기기  (0) 2022.07.25
변수의 타입  (0) 2022.07.07
변수  (0) 2022.07.03
자바란?  (0) 2022.07.02
폴더, 파일 수 탐색  (0) 2022.05.27

+ Recent posts