1. Path
클래스
디스크에 있는 파일로 작업을 수행하는 프로그램을 작성하려는 경우 매우 쉽습니다. Java에는 파일 자체와 그 내용 모두에 대해 작업하는 데 도움이 되는 많은 클래스가 있습니다.
초기 버전의 Java는 File
및와 같은 클래스를 사용하여 FileInputStream
파일 작업을 수행했습니다. 그러나 이 File
클래스는 이제 더 이상 사용되지 않으며 사용하지 않는 것이 좋습니다. 물론 코드, 메소드 매개변수 또는 클래스 생성자에서 여전히 이를 만날 수 있습니다.
처음부터 Path
클래스를 사용하여 파일 작업 방법을 배우기 시작합니다. Path
교체한 클래스입니다 File
. 더 안전하고 효율적입니다.
Path
수업
기술적으로 Path
클래스가 아니라 인터페이스입니다. 이는 각 운영 체제(및 파일 시스템)에 대한 클래스의 자손 쓰기를 허용하기 위해 수행됩니다 Path
.
Windows에는 파일 경로를 작성하기 위한 하나의 표준이 있고 Linux에는 또 다른 표준이 있습니다. 물론 세상에는 다른 많은 운영 체제가 있으며 각각 고유한 표준이 있습니다.
그렇기 때문에 Path
파일 작업을 수행하는 메서드의 모든 곳에서 인터페이스가 사용되지만 실제로는 작업이 하위 클래스인 , , ...을 통해 발생 WindowsPath
합니다 UnixPath
.
Path
개체 만들기
Path
객체(실제로는 자손 클래스의 객체가 됨 )를 생성하려면 WindowsPath
다음과 같은 명령문을 사용해야 합니다.
Path name = Path.of(path);
여기서 name
는 변수의 이름 Path
이고 는 path
파일(또는 디렉토리)의 이름을 포함하는 파일(또는 디렉토리)의 경로입니다. 그리고 클래스 of
의 정적 메서드입니다 Path
.
이 메서드는 프로그램이 Windows에서 실행 중인 경우 개체를 of()
만드는 데 사용됩니다 . WindowsPath
프로그램이 Linux에서 실행되는 경우 UnixPath
객체가 생성됩니다. 와 같은 코드를 사용하여 개체를 만들 수 없습니다 .Path
new Path()
예:
암호 | 메모 |
---|---|
|
파일 경로 |
|
디렉토리 경로 |
Path
유효한 객체가 존재하기 위해 파일(또는 디렉토리)이 존재할 필요는 없습니다 . 어쩌면 당신은 파일을 만들고 싶을 수도 있습니다... Path
개체는 수프 업과 같습니다 String
. 디스크의 특정 파일에 연결되지 않고 디스크의 특정 경로를 저장합니다. 그게 다야.
2. Path
유형 의 방법
인터페이스 Path
에는 몇 가지 흥미로운 방법이 있습니다. 가장 흥미로운 것은 아래 표에 나와 있습니다.
방법 | 설명 |
---|---|
|
상위 디렉토리를 반환 |
|
디렉토리 없이 파일 이름을 반환 |
|
경로에서 루트 디렉토리를 반환합니다. |
|
현재 경로가 절대 경로인지 확인 |
|
경로를 절대 경로로 변환 |
|
디렉토리 이름에서 와일드카드를 제거합니다. |
|
절대 경로와 상대 경로에서 새 절대 경로를 생성합니다. |
|
두 개의 절대 경로에서 상대 경로를 가져옵니다. |
|
현재 경로가 주어진 경로로 시작하는지 확인 |
|
현재 경로가 주어진 경로로 끝나는지 확인 |
|
/ 구분 기호로 경로를 여러 부분으로 나눕니다 . 부품 수를 반환합니다. |
|
/ 구분 기호로 경로를 여러 부분으로 나눕니다 . 인덱스로 부품을 반환합니다. |
|
/ 구분 기호로 경로를 여러 부분으로 나눕니다 . 주어진 간격에 해당하는 하위 경로를 반환합니다. |
|
객체를 더 이상 사용되지 않는 객체 Path 로 변환File |
|
객체를 객체 Path 로 변환URI |
아래는 기존 방법에 대한 간략한 설명입니다.
3. 경로를 여러 부분으로 나누기
이 getParent()
메서드는 현재 경로의 상위 디렉터리를 가리키는 경로를 반환합니다. 이 경로가 디렉토리인지 파일인지에 관계없이:
암호 | 값 |
---|---|
|
|
|
|
|
|
이 getFileName()
메서드는 단일 파일(또는 디렉터리) 이름을 반환합니다. 마지막 구분 기호 뒤에 오는 모든 이름:
암호 | 값 |
---|---|
|
|
|
|
|
|
이 getRoot()
메서드는 루트 디렉터리의 경로를 반환합니다.
암호 | 값 |
---|---|
|
|
4. 절대 및 상대 경로
경로에는 절대 경로와 상대 경로의 두 가지 유형이 있습니다. 절대 경로는 루트 디렉터리에서 시작합니다. Windows의 경우 c:\
폴더일 수 있습니다. Linux의 경우 — /
디렉토리
상대 경로는 일부 디렉토리에 대해 의미가 있습니다. 즉, 길의 끝과 같지만 시작은 없습니다. 상대 경로를 절대 경로로 또는 그 반대로 전환할 수 있습니다.
boolean isAbsolute()
방법
이 메서드는 현재 경로가 절대 경로인지 확인합니다.
암호 | 값 |
---|---|
|
|
|
|
Path toAbsolutePath()
방법
경로를 절대 경로로 변환합니다. 필요한 경우 현재 작업 디렉터리를 추가합니다.
암호 | 값 |
---|---|
|
|
|
|
Path normalize()
방법
경로에서 디렉토리 이름 대신 ".."를 작성할 수 있습니다. 이는 한 디렉토리로 돌아가는 것을 의미합니다 . 정규화는 이러한 것들을 제거합니다. 예:
암호 | 값 |
---|---|
|
|
|
|
Path relativize(Path other)
방법
이 relativize()
방법을 사용하면 "경로 간의 차이"를 구성할 수 있습니다. 하나의 경로는 다른 경로에 상대적입니다.
암호 | 값 |
---|---|
|
|
|
|
|
IllegalArgumentException: 두 경로는 다른 "루트"(다른 디스크)를 가집니다. |
Path resolve(Path other)
방법
이 resolve()
메서드는 반대 작업을 수행합니다 relativize()
. 절대 경로와 상대 경로에서 새 절대 경로를 만듭니다.
암호 | 값 |
---|---|
|
|
|
|
toFile()
방법
이 메서드는 개체 File
와 동일한 파일 경로를 저장하는 더 이상 사용되지 않는 개체를 반환합니다 Path
.
toURI()
방법
이 메소드는 경로를 표준 URI 로 변환 하고 파일 경로를 포함하는 객체를 반환합니다.
파일 경로 | 파일에 대한 URI |
---|---|
|
|
GO TO FULL VERSION