1. Files
클래스
파일 작업을 위해 매끄러운 유틸리티 클래스인 java.nio.file.Files
. 모든 경우에 대한 방법이 있습니다. 이 클래스의 모든 메서드는 정적이며 Path 개체에서 작동합니다. 많은 방법이 있으므로 가장 중요한 방법만 고려할 것입니다.
방법 | 설명 |
---|---|
|
경로가 인 새 파일을 만듭니다.path |
|
새 디렉터리를 만듭니다. |
|
여러 디렉토리 생성 |
|
임시 파일 생성 |
|
임시 디렉토리 생성 |
|
비어 있는 경우 파일 또는 디렉토리를 삭제합니다. |
|
파일 복사 |
|
파일 이동 |
|
경로가 파일이 아닌 디렉토리인지 확인 |
|
경로가 디렉토리가 아닌 파일인지 확인 |
|
주어진 경로에 객체가 존재하는지 확인 |
|
파일 크기를 반환 |
|
파일의 전체 내용을 바이트 배열로 반환 |
|
파일의 전체 내용을 문자열로 반환 |
|
파일의 전체 내용을 문자열 목록으로 반환 |
|
바이트 배열을 파일에 씁니다. |
|
문자열을 파일에 씁니다. |
|
지정된 디렉토리에서 파일(및 하위 디렉토리) 모음을 반환합니다. |
2. 파일 및 디렉토리 생성
파일과 디렉토리는 생성하기가 매우 쉽습니다. 몇 가지 예를 들어 자신을 설득해 봅시다.
암호 | 메모 |
---|---|
|
파일 생성 |
|
디렉토리 생성 |
|
존재하지 않는 경우 디렉토리 및 필요한 모든 하위 디렉토리를 생성합니다. |
3. 복사, 이동 및 삭제
파일 복사, 이동 및 삭제도 마찬가지로 쉽습니다. 이는 디렉터리에도 적용되지만 비어 있어야 합니다.
암호 | 메모 |
---|---|
|
파일 복사 |
|
파일 이동 및 이름 바꾸기 |
|
파일을 삭제합니다 |
4. 파일의 종류 및 존재 여부 확인
다른 사람이 제공한 경로가 있을 때 파일인지 디렉토리인지 알고 싶을 것입니다. 그리고 일반적으로 그러한 파일/디렉토리가 존재합니까?
이를 위한 특별한 방법도 있습니다. 파일 길이를 쉽게 찾을 수도 있습니다.
암호 | 메모 |
---|---|
|
|
|
|
|
|
|
|
5. 파일 내용 작업
마지막으로, 파일의 내용을 쉽게 읽거나 쓸 수 있는 일련의 메서드가 있습니다. 예:
암호 | 설명 |
---|---|
|
파일의 내용을 문자열 목록으로 읽습니다. 문자열 표시 |
6. 디렉토리 내용 가져오기
가장 흥미로운 방법은 여전히 남아 있습니다. 주어진 디렉토리에서 파일과 하위 디렉토리를 가져오는 데 사용됩니다.
newDirectoryStream()
우리는 특별한 객체를 반환하는 메서드 에 대해 이야기하고 있습니다 DirectoryStream<Path>
. 주어진 디렉토리의 모든 파일과 하위 디렉토리를 가져오는 데 사용할 수 있는 반복자(!)가 있습니다.
생각보다 쉽습니다.
암호 | 설명 |
---|---|
|
파일 목록이 있는 개체 가져오기 파일 목록을 반복합니다. |
개체 DirectoryStream<Path>
에는 두 가지 속성이 있습니다. 첫째, 파일 경로를 반환하는 반복자가 있으며 for-each
루프 내에서 이 객체를 사용할 수 있습니다.
둘째, 이 개체는 데이터 스트림이므로 메서드를 사용하여 명시적으로 닫히 close()
거나 블록 내에서 사용을 선언 해야 합니다 try-with-resources
.
7. Files.newInputStream
방법
Java 5부터 FileInputStream
및 FileOutputStream
클래스는 더 이상 사용되지 않습니다. 그들의 단점 중 하나는 이러한 클래스의 객체가 생성되면 디스크에 파일이 즉시 생성된다는 것입니다. 그리고 파일 생성과 관련된 모든 예외가 잠재적으로 발생할 수 있습니다.
나중에 이것은 최선의 결정이 아닌 것으로 인식되었습니다. java.nio.Files
따라서 유틸리티 클래스의 메소드를 사용하여 파일 객체를 생성하는 것이 좋습니다 .
다음은 파일 생성에 대한 이전 접근 방식과 새로운 접근 방식을 비교한 것입니다.
전에 |
---|
|
후에 |
|
그리고 비슷한 대체품이 있습니다 FileOutputStream
.
전에 |
---|
|
후에 |
|
GO TO FULL VERSION