표준 입출력과 File: File(4)

2022. 4. 28. 17:32·자바/입출력 IO

1-10. File을 이해하기 위한 예제(10)

: 지정된 파일을 지정된 크기(KB)만큼 자르는 예제이다.

 

package File;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

public class Exercise010 {
	public static void main(String[] args) {
		String[] input = new String[2];
		Scanner sc = new Scanner(System.in);
		
		input[0] = sc.nextLine();
		input[1] = sc.nextLine();
		
		if (input.length < 2) {
			System.out.println("USAGE : java FileSplit filename SIZE_KB");
			System.exit(0); // 프로그램을 종료한다.
		}

		final int VOLUME = Integer.parseInt(input[1]) * 1000;

		try {
			String filename = input[0];

			FileInputStream     fis = new FileInputStream(filename);
			BufferedInputStream bis = new BufferedInputStream(fis);

			FileOutputStream     fos = null;
			BufferedOutputStream bos = null;

			int data = 0;
			int i = 0;
			int number = 0;

			while((data = bis.read()) != -1) {
				if (i%VOLUME==0) {
					if (i!=0) {
						bos.close();
					}

					fos = new FileOutputStream(filename + "_."+ ++number);
					bos = new BufferedOutputStream(fos);
				}
				bos.write(data);
				i++;
			}

			bis.close();
			bos.close();
		} catch (IOException e) {
			e.printStackTrace();
		}	// end of try-catch
	}
}

test를 1000KB씩 자른 모습

 

저작자표시 (새창열림)

'자바 > 입출력 IO' 카테고리의 다른 글

직렬화가 가능한 클래스 만들기 - Serializable, transient (1)  (0) 2022.04.29
직렬화(Serializtion): Object 입출력 스트림  (0) 2022.04.29
표준 입출력과 File: File(3)  (0) 2022.04.28
표준 입출력과 File: File(2)  (0) 2022.04.28
표준 입출력과 File: File(1)  (0) 2022.04.27
'자바/입출력 IO' 카테고리의 다른 글
  • 직렬화가 가능한 클래스 만들기 - Serializable, transient (1)
  • 직렬화(Serializtion): Object 입출력 스트림
  • 표준 입출력과 File: File(3)
  • 표준 입출력과 File: File(2)
백_곰
백_곰
  • 백_곰
    친절한 코딩
    백_곰
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 알고리즘 (with JAVA)
        • 기본 알고리즘
        • 완전 탐색
        • 분할 정복 알고리즘
        • 동적 계획법
        • 탐욕법
        • 코딩 테스트 기출 문제
        • 코드트리 조별과제
      • 백준 (with JAVA)
        • 완전 탐색
        • 분할 정복
        • 그 외
      • 자바
        • 개발 환경 구축하기
        • 팁
        • 기본적인 개념
        • 컬렉션 프레임워크
        • 프로세스와 쓰레드
        • 지네릭스
        • 람다식
        • 스트림
        • 입출력 IO
        • 네트워킹
        • 열거형(enums)
        • java.lang 패키지
        • java.time 패키지
        • 유용한 클래스들
        • 형식화 클래스들
      • 안드로이드 with 자바
        • 응용 문제들
        • 자잘한 문제들
        • 오류 보고서
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      ServerSocket
      serializable
      file
      역직렬화
      다형성
      java.lang패키지
      Collections Framework
      코드트리
      스트림
      안정 정렬
      선택 정렬
      TCP 소켓 프로그래밍
      문자 기반 스트림
      소켓 프로그래밍
      불안정 정렬
      제자리 정렬
      java.time 패키지
      알고스팟
      유용한 클래스
      snail
      자바 개념
      map()
      Arrays
      중간연산
      InputStream
      람다식
      outputstream
      코딩테스트
      안드로이드 스튜디오
      코딩트리조별과제
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    백_곰
    표준 입출력과 File: File(4)
    상단으로

    티스토리툴바