Java의 파일 경로
Java에서 파일로 작업하는 동안 올바른 파일 이름과 올바른 경로 및 확장자를 지정하는 것이 중요합니다.
작업 중인 파일은 동일하거나 다른 디렉토리에 있을 수 있습니다. 파일 위치에 따라 경로 이름이 변경됩니다.
이 기사에서는 Java에서 파일 경로에 액세스하고 지정하는 방법에 대해 설명합니다.
Java 파일 읽기
파일을 읽는다는 것은 파일의 내용을 가져오는 것을 의미합니다. Java Scanner
클래스를 사용하여 파일을 읽습니다. 예를 통해 이것을 이해합시다.
먼저 새 파일을 만드는 Java 프로그램을 작성합니다. 그런 다음 새로 생성된 이 파일에 일부 콘텐츠를 추가하는 또 다른 Java 프로그램을 작성합니다.
마지막으로 이 파일의 내용을 읽습니다. 이 기사의 어떤 프로그램도 온라인 컴파일러에서 실행되지 않습니다(경로가 올바르게 설정된 오프라인 컴파일러 사용).
파일 생성
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
// Try catch block
try {
// Creating a file with the name demofile.txt
File myFile = new File("demofile.txt");
if (myFile.createNewFile()) {
System.out.println("The file is created with the name: " + myFile.getName());
} else {
System.out.println("The file already exists.");
}
} catch (IOException x) {
System.out.println("An error is encountered.");
x.printStackTrace();
}
}
}
출력:
The file is created with the name: demofile.txt
이 파일은 Java 파일이 있는 동일한 디렉토리에 생성됩니다. 모든 Java 프로그램 파일은 C 디렉토리에 있습니다.
파일에 일부 콘텐츠 추가
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
// create an object
FileWriter writeInFile = new FileWriter("demofile.txt");
// Adding content to this file
writeInFile.write("We are learning about paths in Java.");
writeInFile.close();
System.out.println("Successfully done!");
} catch (IOException x) {
System.out.println("An error is encountered.");
x.printStackTrace();
}
}
}
출력:
Successfully done!
파일 읽기
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner; //scanner class for reading the file
public class Main {
public static void main(String[] args) {
try {
File myFile = new File("demofile.txt");
// create the scanner object
Scanner readFile = new Scanner(myFile);
while (readFile.hasNextLine()) {
String data = readFile.nextLine();
System.out.println(data);
}
readFile.close();
} catch (FileNotFoundException x) {
System.out.println("An error occurred.");
x.printStackTrace();
}
}
}
출력:
We are learning about paths in Java.
여기 File()
메서드 내에서 확장자와 함께 파일 이름만 전달합니다.
demofile.txt
의 전체 경로를 지정하지 않습니다. demofile.txt
는 이러한 모든 Java 프로그램 파일을 저장하는 동일한 디렉토리 및 폴더에 있습니다.
그러나 demofile.txt
가 다른 디렉토리나 폴더에 있는 경우 이 파일을 읽는 것은 그리 간단하지 않습니다. 이러한 경우 파일의 전체 경로를 지정합니다.
Java의 파일 시스템에 대한 자세한 내용은 이 문서를 참조하십시오.
Java에서 파일 경로를 지정하는 방법
파일의 경로를 지정하기 위해 File()
메서드 내에서 확장자와 함께 파일 이름을 전달합니다. 우리는 이렇게 합니다.
new File("demofile.txt")
파일 이름은 파일이 작업 프로젝트의 디렉터리와 동일한 폴더에 있는 경우에만 충분합니다. 그렇지 않으면 파일의 전체 경로를 지정해야 합니다.
파일 이름을 모르는 경우 list()
메소드를 사용하십시오. 이 메서드는 현재 디렉터리에 있는 모든 파일의 목록을 반환합니다.
java.io
라이브러리의 File
클래스에 있는 list()
메소드는 모든 파일 및 디렉토리 목록을 배열로 반환합니다. 반환되는 출력은 추상 경로 이름으로 정의된 현재 디렉터리를 기반으로 합니다.
추상 경로 이름이 디렉토리를 나타내지 않으면 list()
메서드는 null
을 반환합니다. 때때로 우리는 파일이 어디에 있는지 모릅니다.
또한 읽어야 할 파일이 현재 작업 디렉토리에 없으면 오류가 발생합니다. 이러한 문제를 방지하려면 파일의 전체 경로를 사용하는 것이 좋습니다.
파일의 정확한 경로를 얻으려면 아래 주어진 방법을 사용하십시오.
Java에서 파일 경로를 얻는 방법
파일의 경로를 모를 때 Java의 몇 가지 방법을 사용하여 파일의 경로를 찾을 수 있습니다. 그런 다음 이 경로 이름을 인수로 지정할 수 있습니다.
Java는 absolute
, canonical
및 abstract
의 세 가지 유형의 파일 경로를 제공합니다. java.io.file
클래스에는 파일의 경로를 찾는 세 가지 방법이 있습니다.
Java에서 getPath()
메소드를 사용하여 파일 경로 가져오기
getPath()
메소드는 Java의 File 클래스에 속합니다. 추상 파일 경로를 문자열로 반환합니다.
추상 경로명은 디스크 상의 파일을 참조하는 java.io.file
의 객체이다.
통사론:
file.getPath()
예시:
import java.io.*;
public class Main {
public static void main(String args[]) {
try {
// create an object
File myFile = new File("demo.txt");
// call the getPath() method
String path = myFile.getPath();
System.out.println("The path of this file is: " + path);
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}
출력:
The path of this file is: demo.txt
위의 출력에서 볼 수 있듯이 확장자가 있는 파일 이름만 출력입니다. 이것은 파일이 Java 프로그램 파일이 있는 동일한 폴더에 있음을 나타냅니다.
Java에서 getAbsolutePath()
메소드를 사용하여 파일 경로 가져오기
getAbsolutePath()
메서드는 문자열을 파일의 절대 경로로 반환합니다. 절대 경로 이름으로 파일을 생성하면 getAbsolutePath()
메서드는 경로 이름을 반환합니다.
그러나 상대 경로를 사용하여 객체를 생성하면 getAbsolutePath()
메서드는 시스템에 따라 경로 이름을 확인합니다. Java의 File 클래스에 있습니다.
통사론:
file.getAbsolutePath()
절대 경로는 파일이 있는 디렉토리에 관계없이 시스템에 있는 파일의 전체 URL을 제공하는 경로입니다. 반면에 상대 경로는 현재 디렉토리에 대한 파일 경로를 제공합니다.
예시:
// import the java.io library
import java.io.*;
public class Main {
public static void main(String args[]) {
// try catch block
try {
// create the file object
File myFile = new File("pathdemo.txt");
// call the getAbsolutePath() method
String absolutePath = myFile.getAbsolutePath();
System.out.println("The Absolute path of the file is: " + absolutePath);
} catch (Exception e) {
System.err.println(e.getMessage());
}
}
}
출력:
The Absolute path of the file is: C:\Users\PC\pathdemo.txt
이번에는 현재 작업 디렉터리에서 파일이 있는 현재 폴더까지의 전체 작업 경로를 얻습니다.
따라서 파일의 위치를 모를 때마다 절대 경로 방법을 사용하여 파일이 있는 위치를 찾습니다. 그런 다음 해당 파일을 읽어야 할 때마다 해당 경로를 지정할 수 있습니다.
이렇게 하면 읽을 파일을 쉽게 찾을 수 있습니다.
Java에서 getCanonicalPath()
메소드를 사용하여 파일 경로 가져오기
Path
클래스에 있으면 파일의 표준 경로를 반환합니다. 경로 이름이 표준이면 getCanonicalPath()
메서드는 파일의 경로를 반환합니다.
표준 경로는 항상 고유하고 절대적입니다. 또한 이 방법은 .
를 제거합니다. 또는 경로에서 ..
.
통사론:
file.getCanonicalPath()
예시:
// import the java.io library
import java.io.*;
public class Main {
public static void main(String args[]) {
// try catch block
try {
// create the file object
File myFile = new File("C:\\Users");
// call the getCanonicalPath() method
String canonical = myFile.getCanonicalPath();
System.out.println("The Canonical path is : " + canonical);
} catch (Exception x) {
System.err.println(x.getMessage());
}
}
}
출력:
The Canonical path is:C:\Users
Java의 경로에 대한 자세한 내용은 이 문서를 참조하십시오.
결론
이 기사에서는 파일을 읽어야 하는 경우 파일의 경로를 지정하는 방법을 살펴보았습니다. 또한 Java가 파일 경로를 가져오기 위해 제공하는 getPath()
, getAbsolutePath()
및 getCanonical()
경로와 같은 다양한 메서드도 연구했습니다.
또한 파일과 현재 프로젝트의 디렉토리와 폴더에 따라 경로가 어떻게 변하는지 살펴보았다. 또한 데모로 일부 파일을 만들고 읽었습니다.
그러나 이러한 프로그램은 온라인 컴파일러에서 실행되지 않습니다.
관련 문장 - Java File
- Java에서 파일에서 줄 바꿈을 제거하는 방법
- Java에서 파일 닫기
- Java JAR 파일 생성 및 실행
- Java를 사용하여 디렉토리에서 파일 삭제
- Java에서 두 파일의 내용 비교
- Java에서 파일 크기 얻기