ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • java.io.File 클래스 / 주요 메서드
    교육 2020. 10. 27. 14:23

    File 클래스

     

     - 파일의 위치정보를 가지고 있다.

     

     - 파일 내용을 다루는 것이 아니고, 파일 자체를 다룬다.

     

     - 파일 자체에 대한 여러가지 정보를 가져오고 편집할 수 있도록 하는 메소드를 포함

     

    먼저 File 클래스입니다. 파일을 열어서 편집하기 위해서는 파일위치와 파일명을 프로그램이 알고 있어야 합니다. 이 때 String 타입으로 정보를 넣어줄 수도 있지만 File 클래스의 인스턴스에 정보를 입력해두고 메소드를 이용하면 보다 안전하게 작업할 수 있습니다. 네트워크를 통한 입출력의 경우 유사하게 URL 클래스를 사용합니다. 

     

    우선 파일 자체를 편집하기 전에 파일의 주소 또는 파일명을 가진 File 클래스의 인스턴스를 생성합니다. 그리고 인스턴스 메소드를 통해 해당 파일이 실제로 존재하는지, 파일의 길이가 얼마나 되는지, 해당 파일이 실제로 읽기/쓰기/실행이 가능한지 여부 등을 확인할 수 있습니다.

     

    또한 파일 자체를 삭제하거나 이름을 변경하거나 권한을 부여하는 등의 조작도 File 클래스를 통해 가능

     

    public class Main {
    	public static void main(String[] args) {
    		
    		// 파일의 주소 및 파일명을 가진 file 객체 생성
    		// input.txt : "Hello World..!!"
    		File file = new File("C:\\JAVA\\FirstStudy\\FisrtStudy\\input.txt");
    	
    		// 파일이 실제 존재하는지 확인
    		System.out.println(file.exists()); // true (파일이 존재함)
    		
    		// 파일의 길이 정보 확인 (byte)
    		System.out.println(file.length()); // 15 (byte)
    	}	
    }

     

     

    파일 클래스를 사용하면 파일 스트림을 열기 전에 실제 파일에 대한 정보를 확인할 수 있고, 또 파일 자체를 삭제하거나 이름을 변경하는 등의 작업을 수행할 수 있습니다.

     

    [생성자]

    • new File(File parent, String child) : 상위 주소와 파일 이름(또는 디렉토리)
    • new File(String pathname) : 상위 주소
    • new File(String parent, String child) : 상위 주소와 파일 이름(또는 디렉토리)
    • new File(URI uri) : 파일의 uri 주소

    boolean exists() - 파일이 실제 존재하는지 판단
    boolean isDirectory() - 디렉토리인지 판단
    boolean isFile()  - 파일인지 판단
    boolean canRead() - 파일이 읽기 가능한지 판단
    boolean canWrite() - 파일이 쓰기 가능한지 판단
    boolean canExecute() - 파일이 실행 가능한지 판단
    boolean isHidden() - 파일이 숨김파일인지 판단
    int length() - 파일의 길이(byte) 반환
    public class Main {
    	public static void main(String[] args) {
    
    		// 파일의 주소 및 파일명을 가진 file 객체 생성
    		// input.txt : "Hello World..!!"
    		File file = new File("C:\\JAVA\\FirstStudy\\FisrtStudy\\input.txt");
    
    		System.out.println(file.exists());      // true
            
    		System.out.println(file.isDirectory()); // false
            
    		System.out.println(file.isFile());      // true
            
    		System.out.println(file.canRead());     // true
            
    		System.out.println(file.canWrite());    // true
            
    		System.out.println(file.canExecute());  // true
            
    		System.out.println(file.isHidden());    // false
            
    		System.out.println(file.length());      // 15
    	}
    }

    boolean renameTo(File dest) - 경로가 같으면 이름 변경, 경로가 다르면 이름 바뀌면서 해당 경로로 이동됨
    boolean delete() - 파일 삭제
    boolean mkdir() - 생성자에 넣은 경로에 맞게 폴더 생성
    boolean createNewFile() - 생성자에 넣은 경로 및 파일명에 맞게 파일 생성
    public class Main {
    	public static void main(String[] args) {
    
    		try {
    			File dir = new File("/Users/jaeho/");
    			dir.mkdir(); // 폴더 생성
    
    			File file = new File(dir, "input2.txt");
    			file.createNewFile(); // 파일 생성
    
    			File file2 = new File("input3.txt");
    			file.renameTo(file2); // 경로가 다르므로 파일 이름 변경 및 이동 수행
    
    		} catch (Exception e) {
    			System.out.println("파일 및 폴더 생성에 실패했습니다.");
    		}
    	}
    }

    boolean setReadable(treu/false)  - 읽기 권한 설정
    boolean setWritable(true/false)  - 쓰기 권한 설정
    boolean setExecutable(true/false)  - 실행 권한 설정
    public class Main {
    	public static void main(String[] args) {
    
    		try {
    			
    			File file = new File("input3.txt");
                
    			file.setReadable(false);
                
    			file.setWritable(false);
                
    			file.setExecutable(false);
    
    		} catch (Exception e) {
    			System.out.println("파일 및 폴더 생성에 실패했습니다.");
    		}
    	}
    }

    String getPath() - 파일 또는 디렉토리의 상대 경로 추출 (생성자로 준 경로 반환)
    String getAbsolutePath() - 파일 또는 디렉토리의 절대 경로 추출 (생성자 관계없이 절대 경로 반환)
    File getAbsoluteFile() - 절대 경로를 가지는 File 객체 생성
    String getParent() - 현재 파일의 상위 경로 추출 (생성자에서 제공했을 경우)
    File getParentFile() - 현재 파일의 상위 경로를 가진 File 객체 생성 (생성자에서 제공했을 경우)

    String[] list() - 현재 경로의 파일 또는 디렉토리 목록 추출
    File[] listFiles() - 현재 경로의 파일 또는 디렉토리를 가지는 File 타입 배열 추출
    public class Main {
    	public static void main(String[] args) {
    
    		File file = new File("C:\\JAVA\\FirstStudy\\FisrtStudy\\input.txt");
    
    		// "디렉토리 정보라면"
    		if (file.isDirectory()) {
    			String[] arr = file.list();
    
    			for (String a : arr)
    				System.out.println(a); // 폴더 내 모든 파일과 디렉토리 정보
    			
    		} else {
    			
    			System.out.println("File 객체가 폴더가 아닙니다.");
    		}
    	}

     

    '교육' 카테고리의 다른 글

    이미지 reszie하기  (0) 2020.11.14
    HTTP Header 구조  (0) 2020.10.27
    ArrayList  (0) 2020.10.05
    HashMap 메소드  (0) 2020.10.05

    댓글

Designed by Tistory.