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();
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
'⁂ Java > : 기본 익히기' 카테고리의 다른 글
[JAVA] #10-2 입출력스트림 : 입력(Input) - BufferedReader (0) | 2022.09.20 |
---|---|
[JAVA] #10-1 입출력스트림 : 입력(Input) - byte형과 char형 (0) | 2022.09.20 |
[JAVA] #9-5 스레드(Thread) (0) | 2022.09.19 |
[JAVA] #9-4 제네릭(Generic) 이해하기 2 - 제네릭 (0) | 2022.09.16 |
[JAVA] #9-3 제네릭(Generic) 이해하기 1 - 컬렉션 프레임워크 (0) | 2022.09.16 |