chapter 4. 파일과 디렉토리
4장의 주요 내용
- 각종 검사 (읽기,쓰기,실행,일반 파일,숨김)
- 디렉토리 목록 보기,생성,읽기
- 파일시스템 루트의 목록을 보기
- 디렉토리 와 임시디렉토리 생성
- newDirectoryStream() 메소드를 사용한 디렉토리 내용 나열 하기
- 버퍼 스트림 과 비버퍼 스트림
- 삭제 , 복사 ,이동
- 이전 Java6에 비해 많은 부분이 ‘재디자인' 됌
4.1 파일과 디렉토리를 위한 검사 메소드
- exists() : 파일 있는지 여부를 검사
- notExists() : 파일 없는지 여부를 검사
주의 : !exists() == notExists()와 동등 하지 않는다. 또한 두 메서드다 false 반환 하는 경우 상태를 알수 없는 경우 이다. 예를 들면 파일에 접근 권한이 없는 경우
스트림 방식
- 비버퍼 스트림 - 각각의 읽기 요청이나 쓰기 요청은 기반 운영체제에서 바로 처리
- 버퍼 스트림 - 버퍼로 알려진 메모리 영역에서 데이터 작업 한 후 버퍼가 비었거나 버퍼가 꽉 찼을 때만 Native API를 호출 한다.
Glob 패턴
- * : 0개 이상의 문자
- ** : * 과 비슷하지만, 디렉토리의 경계를 넘을 수 있음.
- ? : 정확하게 1 문자
- { } : 콤마로 나뉜 하위 패턴의 컬렉션. 예) {A,B,C}는 A,B,C와 일치함.
- [ ] : 대체할 문자 집합 표현 한다. - 문자를 사용하면 문자의 범위를 표현한다.
- [ ] 내부에서 *,?,\ 는 문자 그대로 매칭
- 이외의 문자는 모두 문자 그래로 매칭
- *, ?를 비롯한 특수 문자와 일치하는 것을 찾으려면 역슬래시 문자를 사용해서 이스케이프 해야 한다.
- \\는 \문자 하나와 매칭하면, \?는 ?문자 하나와 매칭한다.
StandardOpenOption 종류
옵션
|
설명
|
READ
|
읽기용으로 파일을 연다.
|
WRITE
|
쓰기용으로 파일을 연다.
|
CREATE
|
파일이 없다면 새 파일을 생성한다.
|
CREATE_NEW
|
새 파일을 만든다. 파일이 이미 있으면 예외와 함께 실패한다.
|
APPEND
|
파일 끝에 데이터를 추가한다(WRITE나 CREATE와 함께 사용됨)
|
DELETE_ON_CLOSE
|
스트림을 닫을 때 파일을 삭제한다(임시파일을 삭제할 때 사용)
|
TRUNCATE_EXISTING
|
파일을 0바이트로 잘라낸다(WRITE 옵션과 함께 사용됨)
|
SPARSE
|
새로 생성하는 파일이 희소(sparse)할 수 있다?
|
SYNC
|
파일 내용과 메타 데이터를 기반 저장소 디바이스와 동기화 한다.
|
DSYNC
|
파일 내용을 기반 저장소와 동기화 한다.
|
라인 종결 문자
- \u000D\u000A : 캐리지 리턴 + 라인 피드
- \u000A : 라인 피드
- \u000D : 캐리지 리턴
- 참고 문헌 : 한빛미디어 , 자바7 NIO.2 파일&네트워크 프로그램밍