자바 라이브러리 파일, 폴더 작업 [Apache Commons IO]
초급 개발자 시절, 자바 기본서를 공부하면서 매번 드는 생각은 언제 이런 것들을 활용하느냐는 의구심이 들었다.
이런 저런 요구사항을 받다 보면 쌩짜로 기능을 짠다는게 참 막막하기도 하고 기본서에 나온 내용들을 짜집기 하다가 포기하곤 했다.
조금씩 라이브러리들을 검색하고 외국 유능한 개발자들이 공개하거나 공유하는 라이브러리들을 보고 사용해보면서 그 속에 있는 코드들이 모두 기본서에 있는 내용들이더라.
기본 기능들을 이용해서 다른 개발자들도 사용할 수 있는 라이브러리를 만드는 일은 정말 멋진 일이지만 그런 유능한 개발자가 되기에는 엄청난 노력과 적성도 맞아야 하는게 현실인거 같다.
적어도 나는 그런 사람은 못된다. 그 사실을 받아들이고 라이브러리들을 잘 활용하는 개발자가 되기로 수년 전부터 마음 먹었다.
오늘은 아파치 커몬 IO를 포스팅한다. 물론 아주 쉬운 예제로~ 시작.
적어도 뭐하는 라이브러리인지는 홈페이지에서 알아보면,
https://commons.apache.org/proper/commons-io/
Apache Commons IO is a library of utilities to assist with developing IO functionality. 이라고 한다.
IO 는 Input, Out 이고, 그 관련된 기능개발을 지원하는 유틸리티.
메이븐
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
내 컴퓨터 D 드라이브 아래 Worksapce 폴더 아래 모든 파일들을 조회하는 코드다.
특정 확장자만 지정해서 조회도 가능하다.
일을 하다보면 별 이상한 기능들을 만들게 되는 경우가 종종 있다.
몇해 전인데 데이터베이스의 품목 자료의 성분을 조회 해서 html으로 만든 다음 => 여러 형태로 변환(PDF, work) 하고 그것을 폴더에 떨구어 관련된 사람들에게 메일을 보냄과 동시에 json으로 외부 회사에 sftp로 쏘는 기능을 구현했던 적이 있다. 스케줄도 포함해서...
Apache Commons IO 사용의 예
모두 라이브러리를 사용했다. SFTP는 JSch, GJSON, ItextPDF 등등... 다행히 순조롭게 진행이 되어 재미있었다. 만약 라이브러리를 사용하지 않았더라면... 상상만해도 끔찍하다. 틈틈이 자주 사용되는 라이브러리들을 이용해서 간단하 기능을 구현하는 경험은 큰 자산이 된더라.
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.TrueFileFilter;
import java.io.File;
import java.util.List;
public class FileList {
public static void main(String[] args) {
File filedir = new File("D:\\Workspace");
String[] keyword = {"xml","html"};
//특정 확장자만 조회
List<File> files = (List<File>) FileUtils.listFiles(filedir,keyword,true);
//지정한 경로에 모든 파일 조회
// List<File> files = (List<File>) FileUtils.listFiles(filedir, TrueFileFilter.INSTANCE, TrueFileFilter.INSTANCE);
for(File file : files){
System.out.println(file.getAbsolutePath());
}
}
}
결과1
결과2
역시 소스를 까보니 확장자를 선별해서 조회하는 기능이 있구나.
'슬기로운 자바 개발자 생활 > Java more' 카테고리의 다른 글
이클립스 UTF-8 설정 (0) | 2022.11.26 |
---|---|
자바 마리아DB JDBC 초간단 연결 예제 (0) | 2022.11.19 |
자바 LocalDateTime (0) | 2022.11.17 |
jsonschema2pojo 사용하기 json데이터를 자바 클래스로 (0) | 2022.05.16 |
자바 SMTP 메일 송신 기능 구현. 파일 첨부 포함 (0) | 2021.07.18 |
댓글