코딩기록 저장소 🐕/JAVA

Io input_output

kimkongmom 2023. 8. 2. 08:49

 

 

 

 

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써서

1

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인 경우 출력하지 않습니다.

2

'코딩기록 저장소 🐕 > 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