자바 파일명 관리

장원재·2024년 3월 19일
0

java

목록 보기
5/19

서버에서 파일을 관리할 때 클라이언트가 보낸 파일 이름 그대로 저장한다면 이미 있는 파일을 덮어 쓸 수 있다. 그래서 파일을 저장할때는 겹치지 않는 파일명으로 관리해야 한다. 그럴때 스프링이 제공하는 UUID를 활용하면 편하다.

    //파일 이름 생성 ex) qwe-qwe.png
    private String createStoreFileName(String originalFilename) {
        String ext = extractExt(originalFilename);
        String uuid = UUID.randomUUID().toString();
        return uuid + "." + ext;
    }
  • UUID.randomUUID().toString() 부분을 통해서 랜덤값을 만들고 String으로 반환해준다. 그리고 이 uuid.png 형식으로 반환하면 서버에 저장할 파일명이 완성 된다. (참고로 생성된 uuid가 똑같을 확률은 로또 1등 맞을 확률보다 낮다.)
    //확장자 명 가져오기 ex) image.png -> png 추출
    private String extractExt(String originalFilename) {
        int pos = originalFilename.lastIndexOf(".");
        return originalFilename.substring(pos + 1);
    }
  • 파일의 확장자 명을 가져올 때는 위처럼 코드를 작성하면 된다.
  • String.lastIndexOf(Char) 는 Char 와 일치하는 인덱스 번호를 가져온다.
  • 예시1) "hi.txt".lastIndexOf(".") 은 2라는 인덱스 번호를 반환한다.
  • 예시2) "hi.txt.txt" 가 있을때는 끝에 있는 . 과 매칭 되어 6의 인덱스 번호를 반환한다.
  • String.substring(index) 는 index 번호로부터 끝까지 문자열을 가져온다.
profile
데이터 분석에 관심있는 백앤드 개발자 지망생입니다

0개의 댓글

관련 채용 정보