
이 Commons IO 라이브러리는 기존의 JDK에서 제공하는 클래스들에 대해서 자주 사용하는(Commons 한) 기능들을 클래스화 해 놓은 것으로 이해하면 크게 틀리지 않습니다. 물론 기존의 JDK에서 제공되는 클래스들에 대해 보다 개선된 클래스를 제공하고 있기는 하지만 말입니다.
이 글은 Commons IO 라이브러리의 공식 홈페이지에서 매우 간단한 예제를 통해 해당 라이브러리를 소개하고 있는 글을 한글로 정리한 것입니다. 사실.. 제가 이 Commons IO를 직접 사용한것이 아니고 대용량 파일을 서버로 업로드하는 기능을 제공하는 아파치 소프트웨어 재단에서 제공하는 또 다른 Commons Fileupload 라이브러리에서 이 Commons IO 라이브러리를 사용하는 것을 보고 관심을 가져 보게 되었고 실제 기본적인 내용을 살펴보게 되었습니다.
먼저 해당 URL에 대한 데이터 전체를 문자열로 가져오는 예입니다.
- InputStream in = null;
- try {
- in = new URL("href='http://www.google.co.kr").openStream();
- System.out.println(IOUtils.toString(in));
- } catch (MalformedURLException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- IOUtils.closeQuietly(in);
- }
다음은 텍스트 파일을 라인별로 읽어 List 컨테이너로 파싱하는 예입니다.
- File file = new File("c:/text.txt");
- try {
- List<String> lines = FileUtils.readLines(file, "utf-8");
- Iterator<String> it = lines.iterator();
- while(it.hasNext()) {
- System.out.println(it.next());
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
다음은 텍스트 파일을 구성하는 라인을 하나 하나 필요할때마다 읽어 처리할 수 있는 예입니다.
- File file = new File("c:/text.txt");
- LineIterator it = null;
- try {
- it = FileUtils.lineIterator(file);
- while(it.hasNext()) {
- System.out.println(it.next());
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if(it != null) {
- LineIterator.closeQuietly(it);
- }
- }
- String filename = "c:/commons/io/../../lang/../project.txt";
- String normailzed = FilenameUtils.normalize(filename);
- System.out.println(normailzed);
그리고 해당 경로에 대한 저장 장치의 가용 용량을 얻는 코드입니다.
- try {
- long freeSpace = FileSystemUtils.freeSpaceKb("c:/");
- System.out.println(freeSpace + "kb");
- } catch (IOException e) {
- e.printStackTrace();
- }
이 외에도 파일의 복사, Endian 처리, 다양한 응용 스트림 클래스 등을 제공합니다. 이 처럼 일반적으로 많이 사용되는 IO 루틴에 대해서 더 짧은 코드를 통해서, 그리고 검증된 방법을 통해 구현할 수 있는 라이브러리를 사용한다면 원하는 기능을 더욱 빠르고 안정적으로 추가 개발할 수 있습니다. 이러한 라이브러리를 미리 알고 있는 것으로 개발자의 역량은 기술면에서 더 높아질 것입니다.
출처 : http://www.gisdeveloper.co.kr/category/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/Open%20Source
728x90
반응형
'Java > Apache' 카테고리의 다른 글
JDBC 접속시 파라미터 값 설정 (0) | 2012.12.14 |
---|---|
아파치2.2 + 톰캣6.0 연동 설정 (0) | 2012.12.14 |
Apache 설정 파일 httpd.conf 요약 (0) | 2012.12.14 |
WebLogic 8.X 설정 (0) | 2012.10.11 |