안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
File 클래스 :
java.io 패키지에서 제공하고 파일 크기/ 파일 속성/ 파일 이름 등 파일의 다양한 정보를 얻어내는 기능과
파일 생성 및 삭제 기능을 제공합니다. 더불어 디렉토리를 생성하고 디렉토리에 존재하는 파일 리스트를
얻어내는 기능도 있습니다. 대신 파일을 읽거나 쓰는 기능은 없습니다.
File file = new File("파일 경로");
- 윈도우에서는 \ 나 / 를 디렉토리 구분자로 사용할 수 있고,
- 리눅스나 유닉스에선 / 를 사용합니다.
* File 객체를 생성했다고 하여도 파일이나 디렉토리가 생성되는 것은 아닙니다.
생성자 매개값으로 주어진 경로가 유효하지 않더라도, 컴파일 에러 / 예외가 발생하지 않습니다.
File 객체를 통해 해당 경로에 실제 파일이나 디렉토리가 있는지 확인하려면
exists()를 호출하면 됩니다. 존재하면 true를 존재하지 않으면 false를 리턴합니다.
boolean isExist = file.exists();
만약 리턴값이 false 라면 createNewFile(), mkdir(). mkdirs()로 파일이나 디렉토리를 생성할 수 있습니다.
예제
FileInputStrean 클래스 :
파일로부터 바이트 단위로 읽어올 때 사용하며 바이트 기반 스트림입니다.
바이트 단위로 읽어오므로 그림 / 오디오 / 비디오 / 텍스트 파일 등의 모든 종류를 읽어올 수 있습니다.
- FileInputStream fileInputStream = new FileInputStream("파일 경로");
- File file = new File("파일 경로");
FileInputStream fileInputStream = new FileInputStream( file );
FileInputStream 객체가 생성될 때 파일과 직접 연결됩니다.
때문에 파일이 존재하지 않는다면 FileNotFoundException이 발생하므로
try - catch 문으로 예외 처리를 해주어야 합니다.
그리고 FileInputStream은 InputStream 의 하위 클래스이므로 사용 방법이 동일하고,
한 바이트를 읽기 위해 read()를 사용하거나 읽은 바이트를 byte배열에 저장하기 위해
read(byte[] b), read(byte[] b, int off, int len) 사용가능합니다.
예제)
FileOutputStream :
바이트 단위로 데이터를 저장할 때 사용하며 바이트 기반 출력 스트림입니다.
바이트 단위로 저장하므로 그림 / 오디오 / 비디오 / 텍스트 등 모든 종류의 데이터를 저장할 수 있습니다.
- FileOutputStream fileOutputStream = new FileOutputStream("파일 경로");
- File file = new File("파일 경로");
FileOutputStream fileOutputStream = new FileOutputStream(file);
* 해당 경로에 파일이 이미 존재한다면 => 데이터를 출력하면 파일을 덮어쓰게 되며
기존의 파일 내용은 사라집니다. 때문에 기존의 파일 내용 끝에 데이터를 추가하고 싶을 경우
위 생성방법에서 생성자 두 번째 매개 값으로 true를 주면됩니다.
- FileOutputStream fileOutputStream = new FileOutputStream("파일 경로", true);
FileOutputStream도 OutputStream의 하위 클래스이기 때문에 OutputStream과 사용 방법이 동일합니다.
한 바이트 저장을 위해 write()를, 바이트 배열을 한꺼번에 저장하기 위해
write(Byte[] b), write(Byte[] b, int off, int len) 사용가능.
예제)
이상입니다.
'자바' 카테고리의 다른 글
자바 보조 스트림 / 문자 변환 보조 스트림 InputStreamReader / OutputStreamWriter (0) | 2017.04.07 |
---|---|
자바 파일 입출력 Java FileReader / FileWriter (0) | 2017.04.06 |
자바 콘솔 입출력 Java Console, Scanner (0) | 2017.04.04 |
자바 콘솔 입출력 Java System.in, System.out (0) | 2017.04.04 |
자바 입력 스트림과 출력 스트림 Java Reader, Writer (0) | 2017.04.01 |