// 테스트 소스__/*주소에서 파일명 확장자 패스 분리하기*/
//^^ 제가 JUnit 용으로 작성한것이라 소스가 조금 지저분 합니다.양해부탁드려요ㅠㅠ
package test;
import java.io.IOException;
import JUnit.framework.TestCase;
public class HttpApplierParsingTest extends TestCase{
public void testparsePAJPat() throws IOException
{
System.err.println("Test Start!!");
String str = "/usr1/SUNWwbsvr/bin/https/webapps/ipic/ts/upload/pn07136612.cnt";
for(int i=0; i<10; i++)
{
System.err.println("for loop => " + i);
}
String cntFilePath = null; //cnt파일패스
String cntFileName = null; //cnt파일이름
String cntFileExt = null; //cnt파일확장자
int len = str.length(); //길이
int slacePot = str.lastIndexOf("/"); //'/'위치
int pointPot = str.lastIndexOf("."); //'.'위치
int ipicslacePot = str.indexOf("ipic/") + 5; //'ipic/'위치
System.err.println("[" + this.getClass().getName() + "] [cntPasing()] slacePot ==> " + slacePot);
System.err.println("[" + this.getClass().getName() + "] [cntPasing()] pointPot ==> " + pointPot);
System.err.println("[" + this.getClass().getName() + "] [cntPasing()] ipicslacePot ==> " + ipicslacePot);
if( slacePot > -1 && ipicslacePot > -1 )
{
cntFilePath = str.substring(ipicslacePot, slacePot);
cntFileName = str.substring(slacePot + 1);
}
if( pointPot > -1 )
{
cntFileExt = str.substring(pointPot + 1);
}
System.err.println("[" + this.getClass().getName() + "] [cntPasing()] cntFilePath ==> " + cntFilePath);
System.err.println("[" + this.getClass().getName() + "] [cntPasing()] cntFileName ==> " + cntFileName);
System.err.println("[" + this.getClass().getName() + "] [cntPasing()] cntFileExt ==> " + cntFileExt);
}
public static void main(String[] arg)
{
HttpApplierParsingTest htest = new HttpApplierParsingTest();
try
{
htest.testparsePAJPat();
}
catch(Exception ex)
{
System.out.println("Exception : " + ex.getMessage());
}
}
}
// 실행결과
Test Start!!
for loop => 0
for loop => 1
for loop => 2
for loop => 3
for loop => 4
for loop => 5
for loop => 6
for loop => 7
for loop => 8
for loop => 9
[test.HttpApplierParsingTest] [cntPasing()] slacePot ==> 48
[test.HttpApplierParsingTest] [cntPasing()] pointPot ==> 59
[test.HttpApplierParsingTest] [cntPasing()] ipicslacePot ==> 39
[test.HttpApplierParsingTest] [cntPasing()] cntFilePath ==> ts/upload
[test.HttpApplierParsingTest] [cntPasing()] cntFileName ==> pn07136612.cnt
[test.HttpApplierParsingTest] [cntPasing()] cntFileExt ==> cnt
1. 디버깅 설정하기
디버깅할 파일을 선택하시고 Run > Debug()를 클릭하세요.
아래와 같은 창이 실행 됩니다.
Java Application에서 디버깅할 파일을 선택하시고 Name, Project, Main class를 입력한 후
Stop in main에 체크해 주십시오.!
Stop in main 은 디버깅시 메인에서 디버깅을 일시중지 하는 기능을 제공합니다.
설정이 다 되었으면 Debug를 눌러 주세요.
아래와 같이 화면이 나타납니다.
Stop in main에 체크 하였으므로 메인에서 디버깅이 멈추어 있는 것을 확인할 수 있습니다.
2. BreakPoint 설정하기
Breakpoint를 설정하면 프로그램이 실행되다가 Breakpoint가 설정된 부분에서 일시 정지합니다.
보통 에러가 의심스럽거나 프로그램이 어디까지 정상적으로 실행되는지 파악할때 많이 사용합니다.
저는 위 소스의 for문 근처에서 Breakpoint를 설정하여 보았습니다.
원하는 위치에 마우스를 오른쪽 버튼을 클릭하시고 Toggle Breakpoint를 선택해 주십시오.
아래와 같이 소스의 맨앞에 파란 동그라미가 생성된 것을 확인할 수 있습니다.
메인을 만나 일시정지 상태인 소스의 디버깅을 다시 진행하려면 resume()(단축키:F8) 버튼을 클릭하세요.
아래와 같이 디버깅이 다시 진행되다가 breakpoint가 설정된 for문 앞에서 일시정지하는 것을 발견할 수 있습니다.
다시 진행하려면 resume버튼이나 F8을 클릭하시면 됩니다.
참고로 for문을 한번 돌때마다 breakpoint를 만나므로 총 10회의 실행후에야 모든 결과를 확인할 수 있습니다.
다음 강좌에서 이러한 for문을 breakpoint할 때 사용하기 좋은 팁을 알려드리겠습니다.^^그럼 이만.ㅋㅋ
다음강좌 : http://blog.naver.com/rlaaudtnr8/50015602891