⁂ Java/: 기본 익히기

[JAVA] #9-6 File 클래스

김갱환 2022. 9. 19. 18:11

1. 파일 클래스

 

 자바에서는 File 클래스를 통해서 파일과 디렉터리를 다룰 수 있도록 하고 있다.

 그래서 File 인스턴스는 파일 일 수도 있고 디렉터리 일 수도 있다.

 이 파일 클래스는 java.io 안에 들어있으며(in, out) 파일명, 파일 크기, 확장명, 파일 타입 등등에 접근할 수 있다.

 

 이제 직접 파일 클래스를 사용해보자!!

 * 파일 클래스를 사용하려면 java.io.* 를 임포트(import)시킬 필요가 있으며 파일이 없더라도 프로그램이 정상적으로 종료가 되어야하기 때문에 예외처리가 꼭 필요하다(throws, try .. catch 등)

 

 

2. 파일 클래스 사용해보기

 

1) 파일 클래스에 파일 담기

 파일 클래스를 만들어서 파일을 담아보자.

 파일을 담을 때는 '경로명 + 파일명.확장자명' 을 정확하게 작성해야하며 경로를 구분할 때는 / 기호와 \\ 기호 중 하나를 사용한다.

 

package oop0919;

import java.io.*;

public class Test05_File {
	public static void main(String[] args) throws Exception {
		// File 클래스
		// -> 파일과 관련된 정보를 알 수 있다
		// -> 파일명, 파일 크기, 확장명, 파일타입 등등
		
		try {
			// 예외 발생이 예상되는 코드 작성			
			// 경로명 + 파일명			
			// 경로명으로 \ 기호를 사용하려면 2번씩 사용해야한다.			
			// String pathname = "C:\\java202207\\공지사항.txt";
			
			// 경로명으로 / 기호도 사용 가능하다
			String pathname = "C:/java202207/공지사항.txt";
			
			File file = new File(pathname); // File 클래스에 파일 담기
			if(file.exists()) {
				System.out.println("파일 있어요!!");
			} else {
				System.out.println("파일 없어요!!");				
			} // if end
			
		} catch (Exception e) {
			// 예외가 발생되면 처리할 코드할 작성
			System.out.println(e);
		} // end
		System.out.println("END");
		
	} // main() end
} // class end

 

2) 파일 클래스로 파일 크기 확인하기

long(자료형) filesize(파일 크기의 매개변수명) = file(불러온 파일의 매개변수명).length();

 

 파일 크기는 .length() 로 확인을 한다.

 이 때 출력결과는 기본적으로 byte값을 갖기에 1024(2의 10승) 씩으로 계속 나누어줄 수록 단위가 상승한다.

System.out.println("파일크기 : " + filesize);
System.out.println("파일크기 : " + filesize/1024 + "KB");
System.out.println("파일크기 : " + filesize/1024/1024 + "MB");

 

3) 파일 클래스로 파일 이름 확인하기

long(자료형) filesize(파일 크기의 매개변수명) = file(불러온 파일의 매개변수명).getName();

 

 

4) 파일 클래스로 파일 삭제하기

 파일을 삭제할 수도 있다.

 이 때 파일은 영구히 삭제되므로 주의해서 작업해야한다(휴지통에도 남지 않는다).

file(불러온 파일의 매개변수명).delete();

삭제를 시킨 후 한번 더 f11을 누르면
파일이 삭제되었다.

 

 

5) 파일 클래스로 파일명과 확장명을 분리해서 출력시키기

 String 클래스를 활용하여 파일명과 확장명을 분리해 출력시킬 수 있다.

 방법은 여러 가지일 수 있겠지만 아래와 같은 코드로 작성해보았다.

int lastdot = filename.lastIndexOf(".");
String name	= filename.substring(0, lastdot);
String ext	= filename.substring(lastdot+1);
System.out.println("파일명 : " + name);
System.out.println("확장명 : " + ext);

삭제된 파일을 다시 생성했다.

 

 

 6) 전체 코드

package oop0919;

import java.io.*;

public class Test05_File {

	public static void main(String[] args) throws Exception {
		// File 클래스
		// -> 파일과 관련된 정보를 알 수 있다
		// -> 파일명, 파일 크기, 확장명, 파일타입 등등
		
		try {
			// 예외 발생이 예상되는 코드 작성
			
			// 경로명 + 파일명
			
			// 경로명으로 \ 기호를 사용하려면 2번씩 사용해야한다.			
			// String pathname = "C:\\java202207\\공지사항.txt";
			
			// 경로명으로 / 기호도 사용 가능하다
			String pathname = "C:/java202207/공지사항.txt";
			
			File file = new File(pathname); // File 클래스에 파일 담기
			if(file.exists()) {
				System.out.println("파일 있어요!!");
				
				long filesize = file.length();
				System.out.println("파일크기 : " + filesize);
				System.out.println("파일크기 : " + filesize/1024 + "KB");
				System.out.println("파일크기 : " + filesize/1024/1024 + "MB");
				
				String filename = file.getName();
				System.out.println("파일이름 : " + filename);
				
				// 파일 삭제
				// -> 실제 파일이 삭제되니 복사본 남겨놓으시기 바랍니다
				/*
				if(file.delete()) {
					System.out.println(filename + "파일이 삭제되었습니다.");
				} else {
					System.out.println(filename + "파일 삭제 실패");
				} // if end
				 */
				
				// 문) 파일명과 확장명을 분리해서 출력하시오
				//	   파일명 : 공지사항
				//     확장명 : txt
				int lastdot = filename.lastIndexOf(".");
				String name	= filename.substring(0, lastdot);
				String ext	= filename.substring(lastdot+1);
				System.out.println("파일명 : " + name);
				System.out.println("확장명 : " + ext);
								
			} else {
				System.out.println("파일 없어요!!");				
			} // if end
			
		} catch (Exception e) {
			// 예외가 발생되면 처리할 코드할 작성
			System.out.println(e);
		} // end
		System.out.println("END");
		

	} // main() end
} // class end