java.io.File 클래스
① 파일, 디렉터리(폴더)를 관리하는 클래스이다.
② 파일, 디렉터리를 생성/삭제가 가능하다.
③ 파일, 디렉터리의 각종 정보(이름, 크기, 최종수정일)등을 확인할 수 있다.
경로 작성 방법
① 윈도우 : 백슬래시(\), Java에서 백슬래시 입력하는 방법 (\\)
② 리눅스 : 슬래시(/)
③ java.io.File 클래스에는 플랫폼에 따라서 경로 구분자를 자동으로 바꿔주는 separator 필드 값이 있다.
ex01) 실행을 하면 생성 한번더 실행하면 삭제
dir.exists() 없으면 만들고 있으면 지운다
ex02) 이번엔 파일안에 객체생성
/써도 상관없습니다. 별3개 ★★★ 박스는 필수로 외울것! mkdir
객체 생성하고 없으면 만들기 !(not) 쓰기
아래 네모는 반드시 예외처리를 해야하는 코드(Checked Exception인 IOException 발생)
ex03) 두개로 나누어서 정리
파일, 디렉터리 정보 확인
listFiles() : 모든 File 객체를 저장한 File[] 반환
getName() : 이름 반환
getParent() : 저장된 디렉터리 반환
getPath() : getParent() + getName()
lastModified() : 최종수정일을 long 타입으로 반환 SimpleDateFormat
length() : 크기를 long 타입의 바이트 단위로 반환
isDirectory() : 디렉터리이면 true 반환
isFile() : 파일이면 true 반환
빨간 네모는 필수로 외워야할거! 배열로 모든 파일을 가져오는겁니다. listFiles써서
①
file.lastModified(): file 객체가 가리키는 파일 또는 디렉토리의 마지막 수정일을 반환합니다. 반환값은 1970년 1월 1일 이후 경과한 시간(밀리초)입니다.
SimpleDateFormat: java.text.SimpleDateFormat 클래스를 사용하여 날짜 포맷을 지정합니다. "yyyy-MM-dd a h:mm"은 년도-월-일 오전/오후 시간(12시간) 형식으로 지정한 것입니다.
String.format("%-20s", strLastModified): strLastModified 문자열을 20자리로 정렬하고, 부족한 부분은 공백으로 채워서 sb에 추가합니다.
②
file.isDirectory(): file 객체가 디렉토리인지 여부를 확인합니다. 디렉토리인 경우 true, 파일인 경우 false를 반환합니다.
조건 연산자(? :): file.isDirectory()의 결과에 따라 "파일 폴더" 또는 "파일"을 kind에 할당합니다.
String.format("%-10s", kind): kind 문자열을 10자리로 정렬하고, 부족한 부분은 공백으로 채워서 sb에 추가합니다.
③
file.isFile(): file 객체가 파일인지 여부를 확인합니다. 파일인 경우 true, 디렉토리인 경우 false를 반환합니다.
조건 연산자(? :): file.isFile()의 결과에 따라 파일 크기를 구해 size에 할당합니다. 파일이 아닌 경우 크기를 0으로 설정합니다.
size / 1024는 파일 크기를 KB로 변환하고, size % 1024 != 0 ? 1 : 0은 남는 바이트가 있는 경우 올림을 위해 1을 더해주는 부분입니다.
String.format("%10s", KbSize + "KB"): KbSize를 문자열로 변환하고, 크기를 10자리로 정렬하고, 부족한 부분은 공백으로 채워서 sb에 추가합니다. 파일 크기가 0인 경우 출력하지 않습니다.
'코딩기록 저장소 🐕 > JAVA' 카테고리의 다른 글
Output Input Stream (0) | 2023.08.03 |
---|---|
Random 예제 풀이 (0) | 2023.08.02 |
복합 예제 (0) | 2023.08.01 |
예외처리 exception (0) | 2023.08.01 |
Api Java Scanner (0) | 2023.07.31 |