CodeGym /Java Blog /무작위의 /Java.io.File 클래스
John Squirrels
레벨 41
San Francisco

Java.io.File 클래스

무작위의 그룹에 게시되었습니다
대부분의 경우 프로그램은 작업 중 특정 파일에 액세스해야 합니다. 예를 들어, 사용자 데이터는 일부 외부 파일에 기록될 수 있으며, 이를 읽으려면 프로그램이 데이터 열기, 읽기, 편집 및 닫기 등의 작업을 수행할 수 있어야 합니다. 이러한 목적을 위해 Java 프로그래밍 언어에는 Java.io.File 클래스가 있습니다. 이 기사에서는 이것이 어떤 클래스인지 고려하고 이를 사용하는 예를 제공합니다.

Java 파일 클래스란 무엇입니까?

File 클래스는 java.io 패키지 에 정의되어 있으며 스트림 에서 직접 작동하지 않습니다. Java File 클래스는 파일과 디렉터리에 대한 정보를 관리하는 클래스입니다. 아시다시피 운영 체제 수준에서 파일과 디렉터리는 서로 다른 개체입니다. 그러나 Java에서는 둘 다 동일한 File 클래스로 설명됩니다. 왜 파일을 참조하기 위해 문자열을 사용하지 않는지 궁금할 것입니다. 우선, 운영 체제마다 파일 액세스가 다르기 때문입니다.

파일 클래스 생성자

Java.io.File 클래스 객체가 파일을 나타내야 하는지 아니면 디렉토리를 나타내야 하는지에 따라 생성자 중 하나를 사용하여 객체를 생성할 수 있습니다. File(String pathname) 이 경우 생성자는 주어진 경로 이름을 변환하여 새 File 인스턴스를 생성합니다. 문자열을 추상 경로 이름으로 변환합니다. File(String myPath, String myString) 이 생성자는 myPath 경로 이름 문자열과 myString 경로 이름 문자열에서 새 File 인스턴스를 만듭니다. File(파일 상위, 문자열 이름)은 파일 추상 경로명과 이름 경로명 문자열에서 새 File 인스턴스를 생성합니다. File(URI uri) 이 경우 생성자는 주어진 file: URI를 추상 경로 이름으로 변환하여 새 File 인스턴스를 생성합니다. URI는 URI(Uniform Resource Identifier) ​​참조를 나타내는 Java 클래스입니다. 다음은 다양한 Java.io.File 클래스 생성자 의 예입니다 .
import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;

public class FileTest {
   public static void main(String[] args) throws URISyntaxException {
       File myFile1 = new File("d:\\MyCat");
       File myFile2 = new File ("d:\\MyCat", "cat.txt");
       File myFile3 = new File(myFile1, "cat.txt");
       URI uri = new URI ("https://docs.oracle.com/javase/7/docs/api/java/net/URI.html");
       File myFile4 = new File(uri);
   }
}

파일 클래스의 메서드

Java File 클래스에는 파일과 디렉터리를 조작할 수 있는 다양한 메서드가 있습니다. 그 중 일부를 고려해 봅시다:
  • boolean createNewFile()은 생성자에 전달된 경로에 새 파일을 만듭니다. 성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

  • boolean delete()는 생성자에 전달된 경로에서 디렉터리나 파일을 삭제합니다. 삭제에 성공하면 true를 반환합니다.

  • boolean presents()는 생성자에 지정된 경로에 파일이나 디렉터리가 있는지 확인합니다. 파일이나 디렉터리가 존재하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

  • String getAbsolutePath()는 객체 생성자에 전달된 경로의 절대 경로를 반환합니다.

  • String getName()은 파일이나 디렉터리의 짧은 이름을 반환합니다.

  • String getParent()는 상위 디렉토리의 이름을 반환합니다.

  • boolean isDirectory()는 주어진 경로에 디렉터리가 포함되어 있으면 true를 반환합니다.

  • boolean isFile()은 주어진 경로에 파일이 있으면 true를 반환합니다.

  • boolean isHidden()은 디렉터리나 파일이 숨겨져 있으면 true를 반환합니다.

  • long length()는 파일 크기를 바이트 단위로 반환합니다.

  • long lastModified()는 파일이나 디렉터리가 마지막으로 수정된 시간을 반환합니다. 값은 Unix epoch 이후 경과된 밀리초 수를 나타냅니다.

  • String[] list()는 특정 디렉터리에 있는 파일 및 하위 디렉터리의 배열을 반환합니다.

  • File[] listFiles()는 특정 디렉터리에 있는 파일 및 하위 디렉터리의 배열을 반환합니다.

  • boolean mkdir()은 새 디렉토리를 생성하고 성공하면 true를 반환합니다.

  • boolean renameTo(File dest) 파일이나 디렉터리의 이름을 바꿉니다.

Java 파일 클래스의 일부 기능

  • 경로(추상 또는 문자열)는 절대 경로이거나 상대 경로일 수 있습니다. 추상 경로의 부모는 해당 클래스의 getParent() 메서드를 호출하여 검색할 수 있습니다.

  • 먼저 File 클래스 의 객체를 생성하여 파일이나 디렉토리의 이름을 전달해야 합니다. 파일 시스템은 실제 파일 시스템 개체에 대한 읽기, 쓰기, 실행 등의 특정 작업에 제한을 가할 수 있습니다. 이러한 제한을 액세스 권한이라고 합니다.

  • File 클래스 의 인스턴스는 변경할 수 없습니다. 즉, 일단 파일을 생성하면 File 객체가 나타내는 추상 경로는 절대 변경되지 않습니다.

파일 클래스 코드 예

디렉토리와 함께 작동하는 프로그램을 만들어 보겠습니다. 우선 주어진 경로에 디렉터리를 생성한 다음 새 파일을 생성하고 파일과 디렉터리가 존재하는지 확인해야 합니다.
import java.io.File;
import java.io.IOException;

public class FileTest2 {
   public static void main(String[] args) throws IOException {

       //create a directory using mkdir() File class method
       File dir = new File("d:\\MyDir");
       boolean created = dir.mkdir();
       if(created)
           System.out.println("Folder has been created...");
       else
           System.out.println("Folder hasn't been created...");
       File myFile = new File("d:\\MyDir\\cat.txt");
       myFile.createNewFile();
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if(myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");
      }
}
출력은 다음과 같습니다.
폴더가 생성되었습니다... 파일 이름: cat.txt 상위 폴더: d:\MyDir 파일이 존재합니다.
그런데 모든 작업을 올바르게 수행했다면 컴퓨터에서 새 디렉터리와 파일을 찾을 수 있습니다. 이제 생성된 디렉터리와 파일을 사용하여 작업할 수 있는 프로그램을 작성해 보겠습니다. 여기서는 위에 설명된 몇 가지 방법을 사용합니다.
import java.io.File;

public class FileTest3 {

   public static void main(String[] args) {

       File dir = new File("d:\\MyDir");
       File myFile = new File("d:\\MyDir\\cat.txt");
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if (myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");

       System.out.println("Absolute path: " + myFile.getAbsolutePath());

       if (myFile.exists()) {
           System.out.println("Is writable: " + myFile.canWrite());
           System.out.println("Is readable: " + myFile.canRead());
           System.out.println("Is a directory: " + myFile.isDirectory());
           System.out.println("myFile Size in bytes = " + myFile.length());

       }
   }
}
프로그램의 출력은 다음과 같습니다.
파일 이름: cat.txt 상위 폴더: d:\MyDir 파일 존재 절대 경로: d:\MyDir\cat.txt 쓰기 가능: true 읽기 가능: true 디렉토리: false myFile 크기(바이트) = 0
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION