개인참고자료/자바(네트워크)

바이트 기반 스트림 - File 클래스를 이용한 파일의 정보 구하기

경진 2008. 7. 13. 11:00
File 클래스를 이용한 파일의 정보 구하기 

import java.io.File;
import java.io.IOException;

public class FileInfo {

    public static void main(String[] args) {
        if(args.length != 1){
            System.out.println("사용법 : java FileInfo 파일이름");
            System.exit(0);
        } // if end

        File f = new File(args[0]);
        if(f.exists()){ // 파일이 존재할 경우
            System.out.println("length : "+ f.length()); // 파일의 Byte 크기
            System.out.println("canRead :" + f.canRead()); // 읽기 가능 여부
            System.out.println("canWrite :" + f.canWrite()); // 쓰기 가능 여부
            System.out.println("getAbsolutePath :" + f.getAbsolutePath()); // 파일의 절대 경로
            try{
                System.out.println("getCanonicalPath :" + f.getCanonicalPath()); // 파일의 실제 경로
            }catch(IOException e){
                System.out.println(e);
            }
            System.out.println("getName :" + f.getName()); // 파일명
            System.out.println("getParent :" + f.getParent()); // 파일명을 제외한 입력한 경로명
            System.out.println("getPath :" + f.getPath()); // 파일명을 포함한 입력한 경로명

        }
    } // main end
}

결과화면

정보를 보고자하는 파일명을 'FileInfo.class'로 했을 때와. '.\FileInfo.class'로 했을 때의 차이는 getAbsolutePath(), getParent(), getPath() 메소드의 경우 같은 파일이지만 입력한 파일명에 따라서 다른 결과가 나오고 getCanonicalPath()의 경우에만 파일 전체 경로가 출력된다.