새소식

반응형
Java/Spring

Zip 파일 만들기

  • -
반응형

Java를 이용하여 가지고 있는 파일 압축하기

1. java 프로젝트 생성

- Package Explorer 에서 마우스 오른쪽 클릭 후 new > Other

- Java Project 선택 후 Next

- Project Name명 입력 후 Finish 클릭

- 프로젝트 생성 후 화면

2. Java Class파일 생성

- /src 를 선택하고 마우스 오른쪽 버튼 클릭 후 new > Class

- Class 이름 설정, main method 생성 체크 > Finish

3. Zip 파일 압축 소스코드 생성


* 스트림(Stream)

: 자바에서는 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림(Stream) 이라는 흐름을 통해 다룬다.

스트림(Stream)이란 실제의 입력이나 출력이 표현된 이상화된(?) 흐름을 의미한다.

즉, 스트림은 중간 매개자 역할을 하는 가상의 연결고리이다.

※ Java SE 8 버전부터 추가된 스트림 API는 위 스트림과는 전혀 다른 개념입니다. 확인하세요.

* 입출력 스트림

: 스트림은 한 방향으로밖에 통신할 수 없으므로, 입력과 출력을 동시에 처리할 수 없다.

따라서 스트림은 목적에 따라 입력스트림과 출력스트림으로 구분할 수 있다.

자바에서는 java.io 패키지를 통해 InputStream과 OutputStream 클래스를 별도로 제공한다.

InputStream 클래스는 read() 메소드, OutputStream 클래스는 write() 메소드를 통해 입력 출력을 다룬다.

- ZipOutputStream : zip 파일을 생성하기 위해 출력스트림 사용

- FileInputStream : 파일을 바이트단위로 데이터를 읽어와 FileOutputStream을 통해 출력하기 위해 사용

- FileOutputStream : 파일을 바이트 단위로 출력하기 위해 사용

* ZipEntry

:Zip 파일은 GZip과 다르게 ZipEntry라는 객체를 사용한다.

Zip파일은 여러개의 파일을 압축할 수 있는데 이 파일 하나하나가 java.util.zip.zipEntory 라는 객체로

때문에 사용한다.


- 소스코드

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.zip.ZipEntry;

import java.util.zip.ZipOutputStream;

public class ZipCreateTest {

public static void main(String[] args) {

//압축할 파일 경로

String file_path = "C:\\Users\\admin\\Documents\\attach\\attach.html";

//생성할 zip 파일 경로 및 zip 파일명

String zip_create_path = "C:\\Users\\admin\\Desktop\\create.zip";

File file = new File(file_path);

int read;

int size = 1024;

byte[] buf = new byte[size];

ZipOutputStream zos = null;

FileInputStream fis = null;

try {

zos = new ZipOutputStream(new FileOutputStream(zip_create_path));

ZipEntry ze = new ZipEntry(file.getName());

zos.putNextEntry(ze);

fis = new FileInputStream(file);

while((read = fis.read(buf, 0, 1024)) != -1) {

zos.write(buf, 0, read);

}

fis.close();

zos.flush();

zos.closeEntry();

zos.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

4. java 실행 후 zip 파일 생성 확인

- main 소스코드에서 마우스 오른쪽 버튼 클릭 > Run As > Java Application 실행

- 생성 확인

끝!

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.