0.객체 생성
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream("C:\\Users\\PC-15\\Desktop\\High_JAVA\\고급자바과제템플릿\\JavaIO\\파일복사\\Tulips.jpg");
fos =new FileOutputStream("C:\\Users\\PC-15\\Desktop\\High_JAVA\\고급자바과제템플릿\\JavaIO\\파일복사\\복사본_Tulips.jpg");
- fis fos 따로 선언하는 이유 :finally 실행시 fis, fos 변수 사용하기 위해서 null 미리 선언
- FileInputStream 변수명 = new FileInputStream("파일경로명+ 파일이름 ");
- 복사 원하는 파일 경로명 + 파일이름 작성 - FileOutputStream 변수명 = new FileOutputStream("파일경로명+파일이름");
- 파일 자동으로 생성됨
1.실행문
//읽은 바이트를 저장할 배열 생성
원본에서 읽은 데이터를 저장할 목적
byte[] data = new byte[1024];
int num = 0;
while ((num = fis.read(data))!= -1) {
fos.write(data,0, num);
}
//flush() 내부 버퍼 잔류 바이트 출력하고 바이트 비움
fos.flush();
System.out.println("복사가 잘 되었습니다.");
더보기
byte[] data = new byte[1024];
읽은 바이트를 저장할 배열 생성
원본에서 읽은 데이터를 저장할 목적
1KB = 1024 byte
num = fis.read(data)
.read(byte[] b) : 입력 스트림으로부터 읽은 바이트들은 매개값으로 주어진 바이트 배열b에 저장
실제 읽은 바이트 수 리턴(리턴 타입 :int)
fis.read(data)
→ fis 데이터 값을 data(바이트 배열)에 저장
num = fis.read(data)
→ fis.read(data) 값은 num(int 타입) 저장
fos.write(data,0, num);
write(byte[]b,int off, int len) : 매개값으로 주어진 배열 off 부터 len개 의 바이트를 출력
fos.write(data,0, num);
→ data(매개값)에서 0부터 num까지의 바이트 출력
write() 사용안하는 이유
→ 1024 단위로 반복하다가 마지막에 짜투리가 남으면 짜투리 만큼 출력해야되는데
1024 그대로 출력하면 출력문이 깨지게 나옴
fos.flush();
flush()
: 내부 버퍼 잔류 바이트 출력하고 바이트 비움
write 사용하면 꼭 사용해야함
원본
더보기
'Tulips.jpg'파일을
'복사본_Tulips.jpg'로 복사하는 프로그램을
작성하시오.
package HomeWork.copy;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class copy {
public static void main(String[] args) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream("C:\\Users\\PC-15\\Desktop\\High_JAVA\\고급자바과제템플릿\\JavaIO\\파일복사\\Tulips.jpg");
fos =new FileOutputStream("C:\\Users\\PC-15\\Desktop\\High_JAVA\\고급자바과제템플릿\\JavaIO\\파일복사\\복사본_Tulips.jpg");
byte[] data = new byte[1024];
int num = 0;
while ((num = fis.read(data))!= -1) {
fos.write(data,0, num);
}
fos.flush();
System.out.println("복사가 잘 되었습니다.");
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fis.close();
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
'JAVA > HomeWork' 카테고리의 다른 글
경마시스템 (0) | 2024.01.27 |
---|---|
로또출력프로그램 (0) | 2024.01.27 |
호텔운영프로그램 Map타입 (0) | 2024.01.23 |
학생리스트정렬 Comparable과 Comparator (0) | 2024.01.20 |
HomeWork8 2중배열, 2중for문 (0) | 2024.01.20 |