본문 바로가기
수업(국비지원)/Java

[Java] chap14 : IO기반 입출력 - File 클래스, File 클래스의 주요 메서드

by byeolsub 2023. 4. 17.
  • File
File 클래스
   1. 파일,폴더의 정보를 관리하는 클래스. 없는 파일도 관리가 가능하다.
   2. 폴더의 구분자 : 폴더를 구분할 수 있는 문자.
       - 윈도우 : \\,/  => c:\\, c:/
       - 리녹스,맥 : / 

 

📌

package chap14;

import java.io.File;

public class FileEx1 {
	public static void main(String[] args) {
		String filepath = "c:/"; 
    //주의! : 역슬래시를 사용하여 파일을 구분하고자 하는 경우 하나만 사용하면 안된다.
    //        반드시 두번 쓸것.
		//f1 : c 드라이브의 root폴더 관리
		File f1 = new File(filepath);
		//f1.list() : f1 파일의 하위 폴더/파일의 이름 배열로 리턴
		String[] files = f1.list();
		for(String f : files) { //f : c:/의 하위폴더/파일 한개의 이름 (숨김폴더까지 다 리턴)
			File f2 = new File(filepath,f); //filepath 폴더 중 f이름을 가진 파일/폴더를 f2에 집어 넣어줌.
				if(f2.isDirectory()) // 폴더 인지 확인하는
					System.out.printf("%s:디렉토리\\n",f);
				else //파일인지 확인하는
					System.out.printf("%s:파일(%,dbyte)\\n",f,f2.length()); //f2.length() : 파일의 크기 리턴
				                                                         //%,d : 세자리 마다 ,를 찍어 10진 정수로 출력. 
			
		}
	}
}

  • File 클래스의 주요 메서드
File 클래스의 주요 메서드
   getAbsolutePath() : File 객체의 절대 경로
   getName() : 파일의 이름
   boolean mkdir() : 한개의 폴더 생성. 하위폴더 1개
   boolean mkdirs() : 한번에 여러개의 폴더 생성. 하위폴더의 하위폴더....단계별로 1개.
   boolean createNewFile() : 파일 생성. IOException 예외 처리
                             (권한이 없는 경우 예외가 발생하므로 예외처리 필요.)
   boolean renameTo(File)  : 파일의 이름 변경
   long lastModified() : 최종 수정시간. 
                      1970이후부터 파일수정시간까지 밀리초로 리턴
   boolean delete() : 파일삭제                   

 

📌

package chap14;

import java.io.File;
import java.io.IOException;
import java.util.Date;

public class FileEx2 {
	public static void main(String[] args) throws IOException {
		File f1 = new File("c:/temp1");
		System.out.printf("%s 폴더생성 : %b%n",f1.getAbsolutePath(),f1.mkdir());
		File f2 = new File("c:/temp1/test.txt");
		// f2.createNewFile() :  IOException 예외 처리 필요. 
    // why? 파일을 못 만들경우의 예외처리 필요하므로.
		System.out.printf("%s 파일생성:%b%n",f2.getAbsolutePath(),f2.createNewFile());
		File f3 = new File("c:/temp1/test2.txt"); //test2.txt 파일 존재하지 않음
		System.out.printf("%s->%s 이름변경:%b%n",f2.getName(),f3.getName(),f2.renameTo(f3)); 
		System.out.printf("%s 파일 최종 수정시간:%s%n",f3.getName(),new Date(f3.lastModified()));
		System.out.printf("%s 파일 삭제:%b%n",f3.getName(),f3.delete());
	}
}