본문 바로가기
개발/자바

File 객체 정리

by darksilber 2012. 2. 6.
반응형
출처 - http://www.mfamstory.com/

1. File 객체
java.io.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()
    • 디렉토리 이면 true
  • isFile()
    • 파일이면 true
  • canRead()
    • 파일객체가 참조하는 파일이나 디렉토리에 읽기 권한이 있으면 true
  • canWrite()
    • 쓰기 권한이 있으면 true
  • getAbsolutePath()
    • 파일객체의 절대경로를 리턴
  • getAbsoluteFile()
    • 현재 File 객체가 참조하는 파일 또는 디렉토리의 절대경로를 포함한 File 객체 리턴
  • list()
    • 파일객체가 디렉토리 이면 디렉토리 내의 파일명과 디렉토리의 이름을 담고 있는 String[] 리턴
  • iistFiles()
    • 파일객체가 디렉토리 이면 디렉토리내의 파일과 디렉토리를 참조하는 File[] 리턴
  • length()
    • File 객체가 참조하는 파일의 길이를 바이트 단위로 표현한 long 형 값 리턴
  • lastModified()
    • 마지막으로 수정된 시각을 long형으로 리턴
  • 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/minis24/80097934711

반응형

댓글