본문 바로가기

Programming

디렉토리 하위 탐색 하기 디렉토리를 인자로 주면 해당 폴더 아래의 모든 디렉토리와 파일을 뒤지는 visitAllDirsAndFiles 메소드와 디렉토리만 뒤지는 visitAllDirs 메소드를 소개 합니다. visitAllDirsAndFiles 메소드는 기술한 폴더의 모든 디렉토리와 파일을 탐색하는데 process 메소드는 적당히 필요에 따라 만들어 쓰시면 되구여, 예를들면 디렉톨리 이름을 출력 한다든지... 예제를 참고 하세요~ // Process all files and directories under dir public static void visitAllDirsAndFiles(File dir) { // You can do whatever you want with this directory // E.g. printing i.. 더보기
디렉토리 복사 예제(java.io) 특별히 어려운 부분이 없으니 예제만 참고하세요~ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class CopyDir { public static void copyDirectory(File sourcelocation , File targetdirectory) throws IOException { //디렉토리인 경우 if (sourcelocation.isDirectory()) { //복사될 Directory가 없으면 만듭니다. if (!.. 더보기
문자변수 비교 방법(Null Point Exception 예방하기) 문자변수를 비교할 때 가끔식 null point exception을 보신적이 있을 겁니다. 이를 예방하는 간단한 방법을 소개하니 참고하세요~ 핵심은 문자 변수를 왼쪽이 아닌 오른쪽에 주는 것이니 … 기억 하세요~ 1. 아래는 Null Point Exception의 확률이 있죠^^ public void test1() { if (test.equals("hello"))) { System.out.println("hello") } else { System.out.println("goodbye"); } } 2. Null Point Exception을 방지하기 위해 아래처럼 하기도 하죠^^ public void test2() { if (test != null && test.equals("hello"))) { Syst.. 더보기
JAR 파일로 프로그램 실행 JAR 파일로 프로그램 실행 자바 Application을 개발 후 JAR 파일로 묶어 실행하는 방법에 대해 알아보겠습니다. 예제에서는 간단히 파일 하나만 테스트 하겠지만 실제는 여러 개의 파일들이 있는 경우에 유용하게 쓰일 수 있습니다. 1. 우선 간단한 Java Application을 만듭니다. public class Test { public static void main(String[] args) { System.out.println(“Hello World!!”); } } 2. 컴파일 후 JAR로 묶습니다. C:\test>jar cvf test.jar ./Test.class 3. JAR를 실행 하려면 클래스패스를 주어야 하죠… Java –classpath .;test.jar Test 4. 참고로 ma.. 더보기
윤년 구하는 메소드 /* * 윤년을 구하려면 먼저 4의 배수를 구하고 100의 배수는 윤년에서 제외하며 * 100의 배수에서 제외된 년중 400의 배수를 윤년으로 하면 됩니다. * * 참고 하세요~ */ public class IfLeapYears { public static void chkYun(int year) { boolean isYun=false; if( (0 == (year % 4) && 0 != (year %100)) || 0 == year%400 ){ isYun = true; }else{ isYun = false; } if(isYun){ System.out.println(year+"는 윤년. "); }else{ System.out.println(year+"는 윤년이 아님."); } } } 더보기
상속관계가 있는 클래스의 배열도 상속? 상속관계가 있는 클래스의 배열도 상속? 자바에서 두 개의 클래스(A, B)가 상속관계에 있을 때 클래스 배열 A[], B[]도 상속관계 를 가지게 되는데, Point클래스를 Circle이 상속한다면 Circle Type의 배열에 Point배열을 대입하는 것이 가능 해진다는 이야기 입니다. Circle[] c = new Circle[10]; …… Point[] p = c; 위에서 만든 배열 p를 메소드의 인자로 줄 수 있는데… drawCircle(Point p) { //다음과 같이 캐스팅도 가능 합니다. Circle[] c = (Point[])p; } 더보기
생성자에서 오버라이드된 메소드를 호출 생성자에서 오버라이드된 메소드를 호출 아래의 클래스가 있다고 했을 때 Class 하위클래스 { int i=0; //생성자 하위클래스() { i = 10; } void display() { System.out.println(“i = “ + i); } } class 슈퍼클래스 { //생성자 슈퍼클래스() { display(); } Void display() { System.out.println(“여긴 상위 클래스…”); } } 하위클래스의 인스컨스를 NEW 하는 시점에 어떤 결과가 나오는 지를 추측해 보면… 위 클래스에서 상위클래스에서 display()란 메소드를 호출하는데 이 메소드는 하위 클래스에서 재정의(override)한 메소드 인 것을 확인 할 수 있는데 자바에서는 오버라이드된 하위클래스의 disp.. 더보기
C함수 포인터와 자바의 Class&Interface 아래 내용은 effective java라는 책의 내용을 정리한 것 입니다. C언어에서는 함수 포인터란 것을 제공하여 C프로그램에서 특정 함수를 호출할 수 있게 하며 또한 전달도 가능하게 하고 있습니다. (C#에서는 대리자인 delegate를 제공하죠^^) 함수 포인터는 일반적으로 함수 호출자가 이차적인 함수에 포인터를 전달함으로써 해당 함수를 처리할 수 있도록 하는데 이 작업을 종종 콜백(Callback) 이라고 부르기도 합니다. 예를 들어 C 표준라이브러리의 qsort 함수는 comparator 함수에 함수 포인터를 전달하며 포인터로 넘어오는 함수에서 정렬을 원하는 요소(Element)를 비교하여 소트를 하게 되는 것 입니다. 이러한 함수 포인터를 자바에서는 객체 참조를 통해 구현이 가능하므로 Java.. 더보기
Java에서의 Job 스케쥴링 어떤 프로젝트에서 정확히 정해진 시간이나 일정한 시간 간격으로 실행되는 작업이 필요할 수 있다. 이 글에서 우리는 자바 개발자가 표준 Java Timer API를 사용하여 어떻게 이러한 요구사항을 구현할 수 있는지 살펴볼 것이다. 그리고, Java Timer API가 제공하는 기본적인 스케쥴링 시스템 외에 추가적인 기능을 필요로 하는 사람을 위해 오픈 소스 라이브러리인 Quartz에 대해 살펴볼 것이다. 먼저 스케쥴링 작업을 필요로 할 때, 이러한 상황을 인식하는데 도움을 줄 수 있는 일반적인 유스케이스에 대해서 몇 가지 살펴보자. 그리고 나서 우리는 여러분의 기능적 요구에 가장 알맞는 최선의 해결책을 찾아 볼 것이다. 대부분의 비지니스 애플리케이션은 유저들이 필요로 하는 보고서와 통계를 가지고 있다. .. 더보기
임시파일을 만들고 종료 시 삭제 방법 임시파일을 만들고 종료 시 삭제 방법 java.io.File 클래스의 createTempFile()과 deleteOnExit() 메소드를 이용하시면 됩니다. createTempFile인 경우 여러명이 같은 프로그램을 사용하는 경우 유일한 이름을 만들어 내며 deleteOnExit() 메소드는 종료 시 이 임시파일을 삭제하는 역할을 합니다. ============================================ /** * @Desc : 임시 파일을 만들고 종료시 삭제하는 예제 * * @File Name : TemporaryFiles.java * * @Date : 2005.03.26 */ import java.io.*; public class TemporaryFiles { public static .. 더보기