[공식문서] 소개 요약
File is An abstract representation of file and directory pathnames.
Instances of the File class are immutable
Unix/Window 스타일, 절대/상대 경로 모두 지원함
getParent( )로 최상단 디렉토리를 얻을 수 있음.
getPath( )로 pwd를 대체할 수 있음.
Constructor 종류는 아래와 같다.
File(File parent, String child)
// Creates a new File instance from a parent abstract pathname and a child pathname string.
File(String pathname)
// Creates a new File instance by converting the given pathname string into an abstract pathname.
File(String parent, String child)
// Creates a new File instance from a parent pathname string and a child pathname string.
File(URI uri)
// Creates a new File instance by converting the given file: URI into an abstract pathname.
파일 객체 조회하기
walk() : 재귀적으로 디렉토리의 파일 리스트를 반환한다. 순회에 forEach를 사용하자.
walkBottomUp(), walkTopDown() 등의 변형도 있다.
exists() : 기록된 path가 유효한지 검사한다.
파일 및 디렉토리 생성하기
mkdir( ) : Boolean : Directory 이름이 존재하지 않을 때만 directory를 생성한다.
createNewFile( ): Boolean : 반드시 파일명이 존재하지 않을 때만 file을 생성한다. 파일 이름과 위치는 File 객체에 지정되어야한다.
delete(): Boolean : Pathname에 지정된 파일 혹은 디렉토리를 삭제한다.
전체 삭제하기 - stackoverflow
val entries: Array<String> = index.list()
for (s in entries) {
val currentFile: File = File(index.getPath(), s)
currentFile.delete()
}
파일 수정
read [참고 자료]
: Scanner와 비슷한 일을 할 수 있는 forEachLine을 지원.
val file = File("/home/user/info.docx")
file.forEachLine { it -> println(it) } // 한줄씩 출력한다.
write [참고 자료]
: 기존에 있던 내용은 무시하고, 인자로 들어온 내용을 덮어쓴다.
writeText, writeByte 중 선택할 수 있다.
val file = File("/home/user/info.docx")
file.writeText("") // 이러면 파일을 비울 수 있다.
Scanner class 이용
: file의 내용을 일정한 길이로 끊어읽을 때 유용하다. 닫아줘야 할 것이 두 개이니 신경써서 닫아주자.
val file = File("/home/user/info.docx")
val inputStream = FileInputStream(file)
val sc = Scanner(inputStream, Charset.defaultCharset())
while (sc.hasNext()){
val line = sc.nextLine()
// nextLine()은 개행문자를 기준으로 file의 내용을 읽는다.
}
inputStream.close()
sc.close()
FileWriter [참고 자료]
: 기존 내용에 내용을 추가하고 싶을 때 유용하다. 생성 후 꼭 닫아주자.
path = "/home/user/info.docx"
val fw = FileWriter(path, true)
fw.write(text)
fw.clodw()
'프로그래밍 언어 > Kotlin' 카테고리의 다른 글
Kotlin의 시간계산 : LocalDate, LocalDateTime, Duration (0) | 2022.11.27 |
---|---|
List를 Map으로 만들기: associate (0) | 2022.11.26 |
Kotlin Collection 변환 함수 모음 (0) | 2022.10.29 |
IntelliJ에서 만들 수 있는 코틀린 프로젝트의 종류 (0) | 2022.10.29 |
build.gradle.kt의 implementation 문법 (0) | 2022.10.29 |