본문 바로가기
[ JAVA ]/JAVA

[ Java ] File 클래스

by 환이s 2023. 1. 16.
CHAPTER 24. file Class 알아가기

 

오늘은 java.io 패키지에서 기존의 파일이나 폴더에 대한 제어를 하는 데 사용하는 File 클래스에 대해서 포스팅해보려 합니다!

 

 

■  Java File Class

 

File 클래스는 파일에 대한 정보들을 파악하기 위한 메서드들로 구성되어 있습니다. 파일을 생성하고 삭제하며 지정된 파일이 읽기 가능한지 또한 현재 디렉터리에 어떤 파일들이 있는지를 검사하는 다양한 메서드들이 File 클래스에 준비되어 있습니다.

 

Filde 클래스를 간단하게 정리해보면 다음과 같습니다.

 

  • File 클래스 : 파일 또는 폴더에 대한 정보를 제공하는 클래스입니다.
  • File 클래스 객체 : 정보를 조회하고자 하는 파일이나 폴더의 경로에 대한 문자열을 생성자 파라미터로 전달하는 형태로 만들 수 있습니다. 이때 파라미터로 전달되는 경로가 실제로 존재하지 않더라도 File 객체 생성이 가능합니다.
   File file = new File("C:\\test\\aa.txt"); 
   File file = new File("C:\\test\\b.txt");

 

예제 코드를 보기 전 File 클래스 생성자 및 메서드에 대해서 알아봅시다.

 

가 ) File Class 생성자

 

생성자 설 명
File(File parent, String Child) parent 객체 폴더의 child 파일에 대한 File 객체를 생성합니다. 
File(String pathname) pathname에 해당되는 파일의 File 객체를 생성합니다.
File(String parent, String child) parent 폴더 경로의 child라는 파일에 대한 File 객체를 생성합니다.
File(URI uri) file uri 경로에 대한 파일의 File 객체를 생성합니다.

 

나 ) File Class 메서드

 

메서드 설 명
File getAbsoluteFile() 파일의 절대 경로를 넘겨줍니다.
String getAbsolutePath() 파일의 절대 경로를 문자열로 넘겨줍니다.
File getCanonicalFile() 파일의 Canonical 경로를 넘겨줍니다.
String getCanonicalFile() 파일의 Canonical 경로를 문자열로 넘겨줍니다.
String getName() 파일이나 폴더의 이름을 넘겨줍니다.
String getParent() 부모 경로에 대한 경로명을 문자열로 넘겨줍니다.
File getParentFile() 부모 폴더를 File의 형태로 리턴합니다.
String getPath() 파일의 경로를 문자열의 형태로 리턴합니다.
long getTotalSpace() 하드디스크의 총 용량을 리턴합니다.
long getUsableSpace() 하드디스크의 사용 가능한 용량을 리턴합니다.
long getFreeSpace() 하드디스크의 남은 공간을 리턴합니다.
int hashCode() 해시 코드를 반환합니다.
long lastModified() 해당 경로 파일의 최종 수정 일자를 반환합니다.
long length() 해당 경로 파일의 길이를 반환합니다.
Path toPath() java.nio.file.Path 객체로 반환합니다.
URI toURI() URI 형태로 파일 경로를 반환합니다.
File[] listRoots() 하드디스크의 루트 경로를 반환합니다.
String[] list() 경로의 파일들과 폴더를 문자열 배열로 반환합니다.
String[] list(FilenameFilter filter) filter에 만족되는 파일들과 폴더 이름을 문자열 배열로 반환합니다.
File[] listFiles() 해당 경로의 파일들과 폴더의 파일을 배열로 반환합니다.
File[] listFiles(FileFilter filter) filter에 만족되는 파일들과 폴더를 File 배열로 반환합니다.
File[] listFiles(FilenameFilter filter) filter에 만족되는 파일들과 폴더를 File 배열로 반환합니다.

 

그럼 예제 코드를 통해서 알아봅시다.

 

<예제 1>

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class FileWrite {
    public static void main(String[] args) {
        //프로그램 ==> 파일 (출력 스트림이 필요)
        OutputStream os = null;
        try {
            os = new FileOutputStream("C:\\test\\aa.txt");
            System.out.println("입력하세요 : ");
            while (true){
                int ch = System.in.read(); // 1byte 읽음
                if (ch == 13)break;
                os.write(ch);
            }
        } catch (IOException e) {
           e.printStackTrace();
        }
    }
}

 

 

 

위 코드를 실행시키면 다음과 같습니다.

 

참고로 파일 또는 폴더의 정보를 얻기 위해 FIle 객체를 단독으로 사용할 수 있지만 파일 입출력 스트림(FileInputStream, FileOutputStream, FileReader, FileWriter) 객체를 생성할 때 경로 정보를 제공할 목적으로도 사용됩니다.(예제 코드 참고!)

 


마치며

 

지금까지 자바를 복습해 보았는데, 새로운 프로그래밍 언어를 배워서 좋았고, 앞으로 작은 프로젝트에 자바를 활용할 때 생각이 안 난다면 블로그 참고를 많이 할 거 같습니다..!!

 

다음 포스팅에 뵙겠습니다.

728x90

'[ JAVA ] > JAVA' 카테고리의 다른 글

[ JAVA ] Iterator 개념 및 예제  (0) 2023.07.21
[ Java ] Lambda  (0) 2023.01.17
[ Java ] Socket Programming  (0) 2023.01.13
[ Java ] 객체 직렬화(Object serialization)  (1) 2023.01.11
[ Java ] I/O Stream  (2) 2023.01.10