Java File 클래스: 기본 메서드와 활용법

Java File 클래스는 파일을 관리 하기 위하여 exists(), createNewFile(), canWrite(), getName() 등과 같이 파일 시스템에서 작업하는 여러 메서드를 제공합니다. 이 글에서는 Java File 클래스, 그 기본 메서드, 그리고 예제를 통한 활용법에 대해서 상세 하게 다뤄 보도록 하겠습니다.

Java File 클래스에서 많이 사용하는 메서드들은 다음과 같습니다.

메서드형식설명
canRead()Boolean파일을 읽을 수 있는지 여부를 테스트합니다
canWrite()Boolean파일에 쓸 수 있는지 여부를 테스트합니다
createNewFile()Boolean빈 파일을 만듭니다
delete()Boolean파일을 삭제합니다
exists()Boolean파일이 있는지 여부를 테스트합니다
getName()String파일 이름을 반환합니다
getAbsolutePath()String파일의 절대 경로 이름을 반환합니다
length()Long파일 크기(바이트)를 반환합니다
list()String[]디렉터리에 있는 파일의 배열을 반환합니다
mkdir()Boolean디렉터리를 만듭니다

File 클래스의 활용

File 클래스는 다음과 같은 목적으로 사용됩니다:

  1. 특정 파일의 존재 여부 확인
  2. 주어진 경로에 파일이 존재하지 않으면 새 파일을 생성
  3. 파일의 이름을 확인하고 파일의 이름을 변경
  4. File 클래스의 객체를 사용하여 파일의 데이터에 액세스
  5. 파일의 크기 확인
  6. 파일 유형 확인 (쓰기 가능한지 여부 확인)

Java에서 File 클래스 객체 생성하는 방법

파일 객체는 파일 이름 또는 문자열 또는 다른 파일 객체를 문자열로 전달하여 생성됩니다.
예를 들어:

File f1 = new File("D:\\file1.txt");

여기서 f1은 File 클래스의 객체이며 “D:\file1.txt”는 파일 경로 및 이름입니다.

File 클래스의 메서드

java.io.File 클래스에는 컴퓨터 시스템의 파일 시스템에서 기본 작업을 수행하는 다양한 메서드가 포함되어 있습니다.
많이 쓰이는 메서드를 보여드리겠습니다.

File.exists() 메서드

File.exists() 메서드는 특정 파일 또는 디렉토리가 시스템에 존재하는지 여부를 확인하는 데 사용됩니다. 이 메서드는 String 형식의 매개 변수를 사용합니다. 이 문자열 매개 변수는 파일이나 디렉토리의 존재 여부를 확인하려는 드라이브, 디렉토리 또는 파일의 경로입니다. 이 메서드는 예외를 throw하지 않습니다.

예제 프로그램:

import java.io.File;

public class FileExistExample {
    public static void main(String[] args) {
        File f1 = new File("D:\\filename.txt");
        if (f1.exists()) {
            System.out.println("파일이 시스템에 존재합니다.");
        } else {
            System.out.println("파일이 존재하지 않습니다.");
        }
    }
}

위 프로그램은 주어진 위치에 파일 “filename.txt”가 존재하는지 여부를 확인합니다.

출력:

파일이 시스템에 존재합니다.

File.createNewFile() 메서드

File.createNewFile() 메서드는 시스템에 새 파일을 생성하는 데 사용됩니다. 이 메서드는 String 형식의 매개 변수를 사용합니다. 이 문자열 매개 변수는 파일을 지정된 이름으로 만들고자 하는 드라이브 또는 디렉토리의 경로입니다. 이 메서드는 예외를 throw하므로 예외 처리를 위해 try-catch 문을 사용합니다.

예제 프로그램:

import java.io.File;
import java.io.IOException;

public class FileCreateNewFileExample {
    public static void main(String[] args) {
        File f1 = new File("D:\\filename.txt");
        try {
            if (f1.exists()) {
                System.out.println("파일이 이미 존재합니다!");
            } else if (f1.createNewFile()) {
                System.out.println("새 파일이 생성되었습니다!");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 프로그램은 파일이 시스템에 존재하지 않는 경우 새 파일을 생성합니다.

출력:

새 파일이 생성되었습니다!

이와 같이 Java File 클래스의 다양한 메서드를 활용하여 파일 시스템에서 파일 및 디렉토리와 관련된 여러 작업을 수행할 수 있습니다. 이 글에서는 File.exists() 및 File.createNewFile() 메서드에 대한 예제를 제공하였습니다. 다른 File 클래스 메서드에 대한 예제도 이어질 것입니다. Java File 클래스는 파일 및 디렉토리 작업에 유용한 기능을 제공하므로 프로그래머에게 큰 도움이 될 것입니다.

File.getName() 메서드

File.getName() 메서드는 Java 프로그램을 통해 특정 파일의 이름을 가져오는 데 사용됩니다. 이 메서드는 매개 변수를 사용하지 않으며 예외를 throw하지 않습니다. 이 메서드의 출력은 파일의 이름입니다.

예제 프로그램:

import java.io.File;

public class FileGetNameExample {
    public static void main(String[] args) {
        File f1 = new File("D:\\filename.txt");
        System.out.println("파일 이름: " + f1.getName());
    }
}

위 프로그램은 파일의 이름을 가져와 출력합니다.

출력:

파일 이름: filename.txt

File.canExecute() 메서드

File.canExecute() 메서드는 Java 프로그램이 파일을 실행할 수 있는지 여부를 확인하는 데 사용됩니다. 이 메서드는 매개 변수를 사용하지 않으며 예외를 throw하지 않습니다. File.canExecute() 메서드는 true 또는 false를 출력합니다.

예제 프로그램:

import java.io.File;

public class FileCanExecute {
    public static void main(String[] args) {
        File f1 = new File("D:\\filename.txt");
        System.out.println("Java 애플리케이션이 파일을 실행할 수 있습니다: " + f1.canExecute());
    }
}

위 프로그램은 Java 애플리케이션이 파일을 실행할 수 있는지 여부를 확인합니다.

출력:

Java 애플리케이션이 파일을 실행할 수 있습니다: true

File.canWrite() 메서드

File.canWrite() 메서드는 Java 프로그램이 추상 경로로 지정된 파일을 수정할 수 있는지 여부를 확인하는 데 사용됩니다. 이 메서드는 매개 변수를 사용하지 않으며 예외를 throw하지 않습니다. 이 메서드는 true 또는 false를 출력합니다.

예제 프로그램:

import java.io.File;

public class FilecanWriteExample {
    public static void main(String[] args) {
        File f1 = new File("D:\\filename.txt");
        System.out.println("Java 애플리케이션이 파일을 수정할 수 있습니까: " + f1.canWrite());
    }
}

위 프로그램은 Java 애플리케이션이 파일을 수정할 수 있는지 여부를 확인합니다.

출력:

Java 애플리케이션이 파일을 수정할 수 있습니까: true

File.canRead() 메서드

File.canRead() 메서드는 Java 프로그램이 추상 경로로 지정된 파일을 읽을 수 있는지 여부를 확인하는 데 사용됩니다. 이 메서드는 매개 변수를 사용하지 않으며 예외를 throw하지 않습니다. 이 메서드는 true 또는 false를 출력합니다.

예제 프로그램:

import java.io.File;

public class FileCanReadExample {
    public static void main(String[] args) {
        File f1 = new File("D:\\filename.txt");
        System.out.println("Java 애플리케이션이 파일을 읽을 수 있습니까: " + f1.canRead());
    }
}

위 프로그램은 Java 애플리케이션이 파일의 데이터를 읽을 수 있는지 여부를 확인합니다.

출력:

Java 애플리케이션이 파일을 읽을 수 있습니까: true

File.length() 메서드

File.length() 메서드는 Java 프로그램을 통해 파일의 크기를 확인하는 데 사용됩니다. 이 메서드는 파일의 길이를 반환하며 파일에 데이터가 있는 경우 해당 파일의 비트 수를 나타내는 long 값이 반환됩니다. 데이터가 없거나 파일이 존재하지 않는 경우 0L을 반환합니다. 이 메서드는 매개 변수를 사용하지 않습니다.

예제 프로그램:

import java.io.File;

public class FileLengthExample {
    public static void main(String[] args) {
        File f1 = new File("D:\\filename.txt");
        System.out.println("파일의 길이: " + f1.length());
    }
}

위 프로그램은 파일의 길이를 확인합니다. 만약 비어 있는 파일인 경우 0이 출력됩니다.

출력:

파일의 길이: 0

File.getFreeSpace() 메서드

File.getFreeSpace() 메서드는 파일에서 사용 가능한 공간 또는 할당되지 않은 바이트 수를 확인하는 데 사용됩니다. 이 메서드는 매개 변수를 사용하지 않으며 출력은 파일에서 사용 가능한 공간의 수를 나타내는 long 값입니다. 예외를 throw하지 않습니다.

예제 프로그램:

import java.io.File;

public class FileGetFreeSpace {
    public static void main(String[] args) {
        File f1 = new File("D:\\filename.txt");
        System.out.println("파일의 사용 가능한 공간: " + f1.getFreeSpace());
    }
}

위 프로그램은 파일에서 사용 가능한 공간을 확인합니다.

출력:

파일의 사용 가능한 공간: 100721844224

File.getParent() 메서드

File.getParent() 메서드는 추상 경로로 지정된 파일의 부모 경로를 가져오는 데 사용됩니다. 이 메서드는 매개 변수를 사용하지 않으며 예외를 throw하지 않습니다.

예제 프로그램:

import java.io.File;

public class FileGetParentExample {
    public static void main(String[] args) {
        File f1 = new File("D:\\filename.txt");
        System.out.println("부모 경로: " + f1.getParent());
    }
}

위 프로그램은 파일 “filename.txt”의 부모 경로를 가져옵니다.

출력:

부모 경로: D:\

파일 정보를 읽는 완전한 소스

다음 예제는 파일의 여러 정보들을

import java.io.File;

public class FileMethods {
    public static void main(String[] args) {
        File f1 = new File("D:\\filename.txt");
        if (f1.exists()) 
        {
            System.out.println("파일이름: " + f1.getName());
            System.out.println("절대경로: " + f1.getAbsolutePath());
            System.out.println("Writeable: " + f1.canWrite());
            System.out.println("Readable " + f1.canRead());
            System.out.println("파일크기 " + f1.length());
            System.out.println("파일의 사용 가능한 공간: " + f1.getFreeSpace());
            System.out.println("부모 경로: " + f1.getParent());
        } 
        else 
        {
            System.out.println("파일이 없습니다.");
        }
    }
}

출력:

파일이름: filename.txt
절대경로: D:\filename.txt
Writeable: true
Readable true
파일크기 0
파일의 사용 가능한 공간: 100721508352
부모 경로: D:\

Java에서 파일 읽기

Java를 사용하여 파일을 읽는 데에는 몇 가지 단계가 필요합니다. 이전 장에서 만든 텍스트 파일의 내용을 읽기 위해 클래스와 메서드를 사용할 것입니다. 아래는 Java에서 파일을 읽는 예제 코드입니다.

import java.io.File;  // File 클래스를 임포트합니다.
import java.io.FileNotFoundException;  // 에러 처리를 위해 이 클래스를 임포트합니다.
import java.util.Scanner; // 텍스트 파일을 읽기 위해 Scanner 클래스를 임포트합니다.

public class ReadFile {
  public static void main(String[] args) {
    try {
      File myObj = new File("D://filename.txt"); // 읽을 파일을 지정합니다.
      Scanner myReader = new Scanner(myObj); // 파일을 스캔할 Scanner 객체를 생성합니다.
      while (myReader.hasNextLine()) {
        String data = myReader.nextLine(); // 파일에서 한 줄씩 읽어와 data 변수에 저장합니다.
        System.out.println(data); // 데이터를 출력합니다.
      }
      myReader.close(); // 파일을 닫습니다.
    } catch (FileNotFoundException e) {
      System.out.println("파일을 읽는 중 오류가 발생했습니다.");
      e.printStackTrace(); // 오류 내용을 출력합니다.
    }
  }
}

위의 코드를 통해 텍스트 파일을 읽을 수 있습니다. 이 코드는 지정된 파일(filename.txt)을 열어 파일 내용을 한 줄씩 읽어와 화면에 출력합니다.

Java에서 파일 삭제하기

Java에서 파일을 삭제하는 작업은 간단하지만 신중하게 처리해야 합니다. 아래에서 파일을 삭제하는 방법에 대해 알아보겠습니다.

import java.io.File;  // File 클래스를 임포트합니다.

public class DeleteFile {
  public static void main(String[] args) { 
    File myObj = new File("D://filename.txt"); 
    if (myObj.delete()) { 
      System.out.println("파일을 삭제했습니다: " + myObj.getName());
    } else {
      System.out.println("파일을 삭제하지 못했습니다.");
    } 
  } 
}

파일이 성공적으로 삭제되면 “파일을 삭제했습니다: “와 파일 이름이 출력됩니다.

파일을 삭제하지 못한 경우 “파일을 삭제하지 못했습니다.”가 출력됩니다.

이렇게 Java에서 파일을 삭제할 수 있으며, 파일 삭제 작업이 성공적으로 수행될 경우 해당 파일이 삭제되고, 그렇지 않은 경우 실패 메시지가 표시됩니다. 파일 삭제는 주의해서 처리해야 하며, 필요한 파일만을 삭제하도록 주의해야 합니다.

요약

이 글에서는 Java File 클래스 및 해당 메서드에 대해 알아보았습니다. Java 프로그래밍 언어에서 이러한 메서드를 사용하는 방법과 Java 프로그램에서 어떻게 활용할 수 있는지 배웠습니다. Java File 클래스는 파일 및 디렉토리와 관련된 작업을 수행하는 데 유용한 다양한 기능을 제공합니다.

Leave a Comment