728x90
FileInputStream : 파일의 정보를 입력하는 클래스
read() 메서드를 호출하여 정보를 입력 받으며 1바이트의 데이터를 읽는다. 만약에 데이터를 읽다가
파일의 끝에 도달하여 더이상 읽을 데이터가 없는 경우에는 -1을 반환한다.
read() 메서드의 아웃풋은 int형이기 때문에 받아온 데이터를 출력시 아스키코드로 출력된다.
FileOutputStream: 파일의 정보를 출력하는 클래스
write() 메서드를 호출하여 바이트 배열을 파일에 출력 시키며 해당 파일이 경로에 존재하지 않을 시
새 파일을 생성해 준다. 파일이 이미 존재한다면 덮어쓰기 되며 오버로딩된 다른 생성자를 활용하여
두번째 인자로 true를 넣어주면 이어쓰기가 가능하다.
파일의 출력시 버퍼공간을 사용하기 때문에 flush()와 close() 메서드를 사용하여
버퍼공간을 비우고 닫는 행동이 필요하다.
파일 객체를 만들어 인자값으로 주소를 넣어 사용하거나 주소를 직접 입력해준다.
인자값은 String형으로 입력되어야한다.
ex) File file = new File("파일주소");
FileInputStream fis = new FileInputStream(file);
FileInputStream fis = new FileInputStream("파일주소");
파일의 입력 및 출력시 Exception이 발생할 수 있기 때문에 항상 try{}, catch{}문과 함께 사용한다.
ex) 그림파일 복사
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class Test05 {
public static void main(String[] args) {
String path1 ="D:\\0607Park\\resource\\";
try {
FileInputStream fis = new FileInputStream(path1+"그림.png");
FileOutputStream fos = new FileOutputStream(path1+"그림 - 복사본.png");
byte[] buff = new byte[1000]; // 바이트 크기를 크게하면 반복횟수 감소가능
int len;
while((len=fis.read(buff)) != -1) { // 파일의 마지막(-1)까지 반복
fos.write(buff, 0, len); // 담아놓은 len까지
}
fos.flush(); // 버퍼 비우기
fos.close();
} catch (Exception e) { // 예외 처리
e.printStackTrace();
}
}
}
728x90
'Java > study' 카테고리의 다른 글
DAO / VO / DTO (0) | 2022.06.29 |
---|---|
MVC(Model, View, Controller) 패턴 (0) | 2022.06.28 |
예외(Exception)와 예외처리 (0) | 2022.06.24 |
컬렉션 프레임워크 - Map (0) | 2022.06.24 |
컬렉션 프레임워크 (0) | 2022.06.23 |