1. File 객체
하드디스크에 존재하는 파일에 대한 경로 또는, 참조를 추상화한 객체
즉, 새파일에 대한 경로나 만들고자 하는 디렉토리를 캡슐화 한 것임.
2. File 객체의 용도
(1) 물리적 파일시스템에 대해 캡슐화한 경로명을 확인하고 ,실제 파일이나 디렉토리와 대응하는지 알아볼때
(2) 파일 스트림 객체를 생성하고자 할때
※ 참고
다음과 같은 사항등을 확인 할 수 있다.
- 파일의 크기
- 파일의 이름
- 최종 수정일시
- 파일의 속성 (읽기전용,쓰기가능,숨김파일여부...등)
- 기타..
3. File Class 의 인스턴스 생성
1. 디렉토리 생성
File dir = new File("디렉토리의 경로");
2. 부모 디렉토리를 파라미터로 인스턴스 생성
File newFile = new File(dir,"파일명");
※ 위의 1,2 번 방법대로 생성하는 것이 여러모로 가장 유용하다.3. 부모디렉토리를 String 타입으로 전달할 수도 있다.
File newFile = new File("디렉토리의 경로","파일명");
4. File 객체를 URI 객체로부터 생성하는것도 방법도 있다.
4. File 객체는 특징
한번 객체를 생성하고 나면, 생성된 객체에 설정된 경로를 바꿀수가 없다
예를 들면, 파일객체를 생성한 후 생성된 File객체를 참조하는 rename() 메서드를 통해
파일명을 바꾸면 rename()메서드는 실제 파일의 이름을 변경하므로,
File 객체가 포함하고 있는 경로는 존재하는 파일(이름이 바뀐..)을 더이상 참조하지 못한다.
5. File 객체의 메서드 (1)
- getName()
- 경로를 제외한 파일의 이름을 리턴한다
- 디렉토리를 참조하는 File객체는 디렉토리명을 리턴한다.
※ 즉, File 객체가 참조하는 경로의 마지막 부분을 리턴한다.
- getPath()
- getParent()
- 현재 파일객체의 부모디렉토리의 절대경로명을 리턴
- hashCode()
- exists()
- File 객체가 참조하는 파일이나 디렉토리가 실존하면 true 리턴
- isDirectory()
- isFile()
- canRead()
- 파일객체가 참조하는 파일이나 디렉토리에 읽기 권한이 있으면 true
- canWrite()
- getAbsolutePath()
- getAbsoluteFile()
- 현재 File 객체가 참조하는 파일 또는 디렉토리의 절대경로를 포함한 File 객체 리턴
- list()
- 파일객체가 디렉토리 이면 디렉토리 내의 파일명과 디렉토리의 이름을 담고 있는 String[] 리턴
- iistFiles()
- 파일객체가 디렉토리 이면 디렉토리내의 파일과 디렉토리를 참조하는 File[] 리턴
- length()
- File 객체가 참조하는 파일의 길이를 바이트 단위로 표현한 long 형 값 리턴
- lastModified()
- listRoots()
- static 메서드
- 루트디렉토리에 대응하는 파일객체의 배열 리턴 file[]
- 윈도우에서 c:\ ,d:\,e:\,f:\ 출력됨
6. File 객체의 메서드 (2)
※ 다음 메서드들은 파일과 디렉토리를 생성하고 수정하는데 사용되는 메서드이다.
- renameTo(File dest)
- 현재 객체가 나타내는 파일의 이름이 메소드의 인자로 전달된 File객체가 나타내는 경로로 변경됨
- 물리적인 파일을 실제로 바꾸는 것이므로 이전 File 객체가 참조하는 파일은 존재하지 않게된다.
- 성공하면 true 리턴
※ ex
targetFile.renameTo(new File(targetDirectory,fileHashName));
- setReadOnly()
- 현재 객체가 참조하는 파일객체를 읽기전용으로 수정한다.
- mkdir()
- 현재 파일객체가 참조하는 경로로 디렉토리를 생성한다.
- 반드시 부모디렉토리가 있어야 한다.
- mkdirs()
- 디렉토리를 생성한다.
- 부모디렉토리까지 같이 생성한다.
- 실패한 경우에도 일부 디렉토리가 생성 되었을 수 있다.
- createNewFile()
- 지정된 경로로 빈 파일 생성
- 경로에 지정된 디렉토리가 이미 있어야 한다
- 같은 이름의 파일이 이미 존재하면 실패한다.
- createTempFile(String prefix , String sufix , File directory)
- static 메서드
- prefix : 파일이름(3글자 이상)
- suffix : 파일 확장자 이름 (null 이면 .tmp)
- directory 에 파라미터로 주어진 이름으로 임시 파일을 생성한다.
- 생성된 파일은 자동 삭제 되지 않으므로 삭제처리를 별도로 해줘야 한다.
- createTempFile(String prefix , String sufix )
- delete()
- File 객체가 참조하는 파일 또는 디렉토리를 삭제한다.
- 디렉토리이면 비어있어야 한다.
- deleteOnExit()
- 프로그램이 끝날때 삭제한다
- 임시파일의 삭제에 주로 사용
출처 :
http://blog.naver.com/hateatom/100138120527