본문 바로가기

dev/자바

(27)
File lastModifiedTime 조회 자바에서 파일 수정 시간 조회하려면 File 클래스의 lastModified API를 사용하면 확인할 수 있었습니다. 윈도우에서는 문제없이 파일 수정 시간을 확인할 수 있었지만 운영서버가 리눅스인 경우 lastModified() API로 수정 날짜를 확인할 수 없었습니다. (0을 리턴...) 따라서 해당 버그를 수정하기 위해 구글링 해본 결과 java.nio의 BasicFileAttributes 클래스를 사용하면 해결할 수 있었습니다. 위의 소스 코드를 간단히 설명하자면 해당 파일을 File 클래스로 담지 않고 Path로 담습니다.(15라인) 그리고 해당 파일의 속성을 BasicFileAttributes에 저장합니다.(16라인) 수정 시간(밀리 세컨드)을 날짜로 표현하기 위해 SimpleDateForma..
컬렉션 별 iterator 사용법 자바 컬렉션 별 iterator 사용하는 방법을 포스팅하겠습니다. list, map, set은 자바 컬렉션인데 각각의 내용을 조회하려면 iterator을 사용해야 합니다. 먼저 소스부터 보겠습니다. 위의 소스를 보게 되면 13번째 라인에 iterator를 선언하고 있고 각 켈력션마다 itertator를 받아 순회하고 있습니다. (list : 15 ~ 25라인, map : 28 ~ 39라인, set : 42 ~ 52라인) while문을 보게 되면 hasNext() 메소드가 보이는데 컬렉션의 다음 요소가 있는지 확인하고 있으면 true, 없으면 false를 리턴하는 메소드입니다. 그리고 그 안의 next 메소드는 컬렉션의 다음 요소를 리턴합니다. 소스를 실행시키면 위와 같은 결과가 표출됩니다.
IOUtils 문자열 인코딩 깨짐 해결 현재 진행하고 있는 프로젝트에서 카카오 지도 rest api를 사용하고 있는데 결과값이 깨져서 오는 경우가 있었습니다. 문제를 보아하니 위의 화면 처럼 IOUtils의 toString 메소드가 deprecated 되었기 때문에 이런 문제가 발생했습니다. 에러를 해결하기 위해 IOUtils의 toString 대신에 copy를 사용해서 코드를 수정했습니다. 소스코드를 위의 화면처럼 수정하고 다시 rest api를 조회한 결과 아래 화면처럼 결과값이 잘 나왔습니다. 앞으로 InputStream을 문자열로 변환할 때 IOUtils의 toString 말고 copy를 이용해서 변환하면 좋을 거 같습니다.