블로그 이미지
GUCCI

카테고리

전체보기 (111)
여행 (1)
기기 (2)
쇼핑 (0)
게임 (0)
etc. (6)
취업이야기 (0)
업무일지 (5)
리눅스 (38)
웹프로그래밍 (2)
네트워크 (4)
JAVA (17)
Android (0)
IOS (2)
LUA (8)
C/C++ (1)
Objective C (2)
SERVER (2)
그누보드4 (1)
MSSQL (2)
Programming (1)
자바스크립트 (4)
HTML/CSS (1)
LGNAS (0)
Total
Today
Yesterday

'java'에 해당되는 글 8건

  1. 2011.04.06 java 형변환 모음 1
  2. 2011.03.16 태그 제거 정규식 2
  3. 2011.03.16 이미지 태그 SRC 경로 추출 3
  4. 2011.03.16 파일명 추출 2
  5. 2011.03.08 Thread 클래스 3
  6. 2011.03.07 javax.servlet.ServletException: BeanUtils.populate 4
  7. 2011.03.03 java.util 패키지 3
  8. 2011.03.03 java.net - Url 클래스 5

java 형변환 모음

JAVA / 2011. 4. 6. 13:33
[TextView to Double]
TextView  xDoubleA = Double.parseDouble(xViewA.getText());

** xViewA 값은 무조건 숫자형식이여야함. 아닌경우 Exception이 발생.

[int to String]
String str = Integer.toString(i);String str = "" + i;

[String to Int]
int i = Integer.parseInt(str);int i = Integer.valueOf(str).intValue();

[Double to String]
String str = Double.toString(d);

[Long to String]
String str = Long.toString(l);

[Float to String]
String str = Float.toString(f);

[String to Double]
double d = Double.valueOf(str).doubleValue();

[String to Long]

long l = Long.valueOf(str).longValue();long l = Long.parseLong(str);

[String to Float]
float f = Float.valueOf(str).floatValue();

[Decimal to Binary]

String binstr = Integer.toBinaryString(i);

[Decimal to Hexadecimal]
String hexstr = Integer.toString(i, 16);String hexstr = Integer.toHexString(i);Integer.toHexString( 0x10000 | i).substring(1).toUpperCase());
hexadecimal(String) to int
int i = Integer.valueOf("B8DA3", 16).intValue();int i = Integer.parseInt("B8DA3", 16);

[ASCII Code to String]
String char = new Character((char)i).toString();

[Integer to ASCII Code]
int i = (int) c;

[Integer to Boolean]
boolean b = (i != 0);

[Boolean to Integer]
int i = (b)? 1 : 0;

[Boolean to string]
       boolean theValue = true;
       
        //boolean to String conversion
        String theValueAsString = new Boolean(theValue).toString();
       
        System.out.println(theValueAsString);
Posted by GUCCI
, |

태그 제거 정규식

JAVA / 2011. 3. 16. 14:19
    public static String convertHtmlTags(String s) {
           s = s.replaceAll("<[^>]*>", ""); //정규식 태그삭제
           s = s.replaceAll("\\t", ""); //탭제거
           s = s.replaceAll(" ", "");   //공백제거
           return s;
    }

'JAVA' 카테고리의 다른 글

java 형변환 모음  (1) 2011.04.06
자바 iBATIS 결과를 XML 리턴받기 : xmlResultName , java , xml  (1) 2011.04.06
이미지 태그 SRC 경로 추출  (3) 2011.03.16
파일명 추출  (2) 2011.03.16
Thread 클래스  (3) 2011.03.08
Posted by GUCCI
, |

    public static String convertHtmlimg(String img) {
        Pattern p = Pattern.compile("<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>");
        Matcher m = p.matcher(img);
        String t = "";
        while (m.find()) {
            System.out.println(m.group(1));
            t = m.group(1);
        }
        return t;
    }
   
다른 태그로 쓸 경우 img 부분이나 src를 원하는 스트링으로 변경

'JAVA' 카테고리의 다른 글

자바 iBATIS 결과를 XML 리턴받기 : xmlResultName , java , xml  (1) 2011.04.06
태그 제거 정규식  (2) 2011.03.16
파일명 추출  (2) 2011.03.16
Thread 클래스  (3) 2011.03.08
HttpURLConnection 이용시 헤더값 세팅 방법  (3) 2011.03.03
Posted by GUCCI
, |

파일명 추출

JAVA / 2011. 3. 16. 14:16

String path= "/temp/temp2/test.jpg";  

String temp[] = t.split("/");
                      
Data=temp[temp.length-1].toString();
                  
경로에 / 부분으로 나눠서 배열에 담은후 마지막 데이터를 가지고 오면 됨

'JAVA' 카테고리의 다른 글

태그 제거 정규식  (2) 2011.03.16
이미지 태그 SRC 경로 추출  (3) 2011.03.16
Thread 클래스  (3) 2011.03.08
HttpURLConnection 이용시 헤더값 세팅 방법  (3) 2011.03.03
java.util 패키지  (3) 2011.03.03
Posted by GUCCI
, |

Thread 클래스

JAVA / 2011. 3. 8. 13:35

Thread 클래스 

 

   Single Thread : 내부에 쓰레드를 하나씩 동작 시키는 방식 

   Multi Thread   : 내부에 쓰레드를 여러개 단위로 동작 시키는 방식

 

 

  Thread 구현 방법

 

   Tread 클래스 구현 ex) class A extends Thread 후 run 메서드 오버라이딩. 사용

   Runnable 인터페이스 구현 ex) class A implements Runnable 의 run 메서드 구현. 사용

 

 

  Thread 우선순위

 

   특정 Thread가 더 많은 작업 시간을 가지도록 한다.

   우선순위의 범위 1 ~ 10 까지 높을수록 우선순위가 높다. 기본 main은 5이다.

 

   setPriority ( ) : 우선 순위값을 변경한다.

   getPriority ( ) : 우선 순위값을 반환한다.

   sleep ( ) : 쓰레드에 대기시간을 설정한다.

   start ( ) : 쓰레드를 실행시킨다. 내부적으로 run 메서드를 호출한다.

   run ( ) : start시 해당 내용을 실행한다. 오버라이드로 자신에게 맞게 적용한다.

   suspend( ) : 쓰레드를 잠시 정지 시킨다.

   resume ( ) : 일시정지된 쓰레드를 다시 시작한다.

   stop ( ) : 실행중인 쓰레드를 강제 종료 시킨다.

 

   import javax.swing.JOptionPane;
   class ThreadEx1{
      public static void main(String[] args) {
         String input=JOptionPane.showInputDialog("입력"); //메세지 입력박스
         System.out.println("입력한 값 = "+input);
         for (int i=0; i<10; i++)  {
             System.out.println(i);
             try{
                 Thread.sleep(1000); //현재 실행 Thread를 1000초만큼 대기상태.main
             }catch(Exception e){}}}} //예외가 발생되므로 예외처리


-출력 결과-

입력한 값 = power
0
1
2
3

.....

프로그램이 실행되면 입력창이 뜨고 입력시 현재 Thread인 main이 sleep

메서드에 의해 지정된 값만큼 딜레이가 생기며 카운트 한다.
 

  ThreadGroup 클래스

 

   1. 서로 관려된 Thread를 그룹으로 다룰 수 있다.

   2. 보안상의 이유로 도입된 개념이다.

   3. 생성자를 통하여 그룹이름을 추가 및 가입할 수 있다.

 

   activeGroupCount ( ) : Thread 내의 그룹 개수를 반환한다.

   activeCount ( ) : 그룹내의 Thread 수를 반환한다.

   list ( ) : Thread 그룹의 정보를 출력한다.

   setMaxPriority ( ) : 해당 그룹의 우선순위를 정의한다.

 

   class ThreadGroupEx1{
      public static void main(String[] args) {
          ThreadGroup main=Thread.currentThread().getThreadGroup();
          ThreadGroup grp1=new ThreadGroup("그룹1"); //그룹명 그룹1 생성
          ThreadGroup grp2=new ThreadGroup("그룹2");
          ThreadGroup subGrp1=new ThreadGroup(grp1,"자식1:"); //grp1그룹의 서브그룹 자식1
         grp1.setMaxPriority(3); //grp1 그룹의 우선순위를 3으로 set . sub그룹도 변경됨
          
Thread t1=new Thread(grp1,"스레드1"); //Thread생성시 grp1그룹에 속함.
          Thread t2=new Thread(subGrp1,"스레드2");
          Thread t3=new Thread(grp2,"스레드3");
         t1.start(); //Thread 실행
         t2.start();
         t3.start();
         System.out.println("Group Name"+main.getName());
         System.out.println("Active ThreadGroup "+main.activeGroupCount()); //그룹개수
         System.out.println("Active Thread "+main.activeCount()); //Thread 개수
         main.list();  }} //Thread 정보 출력

 

-출력 결과-

Group Namemain
Active ThreadGroup 3
Active Thread 1
java.lang.ThreadGroup[name=main,maxpri=10]
    Thread[main,5,main]
    java.lang.ThreadGroup[name=그룹1,maxpri=3]
        java.lang.ThreadGroup[name=자식1:,maxpri=3] *자식그룹은 들여쓰기
    java.lang.ThreadGroup[name=그룹2,maxpri=10]
계속하려면 아무 키나 누르십시오 . . .

Thread에 그룹을 부여하여 그룹단위로 관리가 가능하게 한다. 그룹안에 다시 그

룹이 들어갈 수 있다.

  Deamon Thread

 

   1. 일반 Thread의 작업을 보조한다. Thread내부의 Thread를 말한다.

   2. 종료 시점은 일반 Thread가 종료될 때 강제 종료된다.

 

   class DaemonEx1 extends Thread{ //Thread 클래스 상속
      static boolean autoSave=false;
      public static void main(String[] args) {
           Thread t=new Thread(new DaemonEx1()); 
           t.setDaemon(true); //setDaemon 메서드를 통한 활성화. false면 종료안됨
           t.start(); //Thread 시작 (main)
           for (int i=0; i<=20 ; i++ )  {
               try{
                  Thread.sleep(1000); //20까지 conunt 하며 딜레이 발생
               }catch(InterruptedException e){}
              System.out.println(i);
              if(i==5)
               autoSave=true;  } //5일때 true
          System.out.println("프로그램을 종료합니다");   }
      public void run(){
          while(true){
              try{
                 Thread.sleep(3*1000);
              }catch(InterruptedException e){}
              if(autoSave)
                 autoSave();  } }
     public void autoSave() {
          System.out.println("저장합니다"); }}

 

-출력 결과- 

0
1
2
3
4
5
6
7
8
저장합니다
9
10
11
저장합니다
12
13
저장합니다

[출처] Thread ( 쓰레드 )|작성자 stryper_top

'JAVA' 카테고리의 다른 글

이미지 태그 SRC 경로 추출  (3) 2011.03.16
파일명 추출  (2) 2011.03.16
HttpURLConnection 이용시 헤더값 세팅 방법  (3) 2011.03.03
java.util 패키지  (3) 2011.03.03
java.net - Url 클래스  (5) 2011.03.03
Posted by GUCCI
, |

스트럿츠

javax.servlet.ServletException: BeanUtils.populate

 

jsp페이지에서 name값 ,파라메터값에 대문자를 소문자로 바꾸니 해결되었다.

 

ex) remainderAmt -> remainderamt

'JAVA > exception' 카테고리의 다른 글

Weblogic DB Connection Pool Max 도달시 처리  (0) 2013.11.19
Posted by GUCCI
, |

java.util 패키지

JAVA / 2011. 3. 3. 15:55

 

  java.util  패키지

 

  Date 클래스

 

   날짜와 시간을 관리 하는 대표적인 클래스. GMT 시간으로 반환한다. 1/1000초 까지 반환한다.

   1900 년과 1970년을 기준으로하는 메서드들이 존재하며 1970년이 기본 기준이된다.

 

   *gerYear( ) : 메서드만 기준이 1900년도로 설정되어 있다.

   getHours( ) : 현재 시간을 반환한다. 0~ 23시

   getMinutes( ) : 현재 분을 반환한다. 0 ~ 59분

   getSeconds( ) : 현대 초를 반환한다. 0 ~ 59초

 

   import java.util.Date;
   class Data1{
       public static void main(String[] args) {
           Date date=new Date();
           System.out.println(date); //toString이 Date클래스에 오버라이딩 되어 있다.
           
int h=date.getHours(); //현재 시간을 h에 대입
           int m=date.getMinutes(); //현재 분을 m에 대입
           int s=date.getSeconds(); //현재 초를 s에 대입
           System.out.println("현재 시간은 "+h+"시 "+m+"분 "+s+"초 입니다");

 

           -출력 결과-

Thu Nov 19 14:16:12 KST 2009
현재 시간은 14시 16분 12초 입니다
현재 시간은 2시 16분 12초 입니다
계속하려면 아무 키나 누르십시오 . . .

 

  Calendar 클래스

 

   현재 날자 시간 정보를 필드 상수값으로 보관한다. 사용하고자 할 때 해당 상수값을 set 하거나

   get 하여 사용하게 된다.

 

   getTime( ) : 현재 날자 시간 정보를 Date 클래스 형태로 반환한다.

   getInstance( ) : Calendar 인스턴스를 생성하여 반환한다.

   set( ) : 연월일시분초에 해당되는 매개변수를 받아 set 한다.

   get( ) : 해당 필드값을 반환한다.

   after( ) : 매개변수 Calendar 객체의 시간이 더 크다면 true 반환

   befor( ) : after와 반대 기능을 수행한다.

   equals ( ) : 두 객체의 날자 시간 정보가 같으면 true 반환.

   add( ) : 필드값에 대해 감산 및 가산한다.

   roll( ) :  필드값을 변경하지 않고 감산 가산한다. 범위가 해당 필드 범위사이에서 설정

                  일에 대한 기준은 해당 월에 따른 일수에 따라 설정된다.

 

   import java.util.Calendar;
   class CalendarTest{
       public static void main(String[] args) {
           Calendar c=Calendar.getInstance();
           Calendar c2=Calendar.getInstance();
           System.out.println("Calendar 클래스 시간과 날짜 출력 ");
           c2.set(2000,9,11); //연월일시분초에 대한 set
          
System.out.print(c.get(Calendar.YEAR)+"년"); //현재 년도 필드 YEAR 리턴
          
System.out.print((c.get(Calendar.MONTH)+1)+"월"); //위와 같은 내용
          
System.out.print(c.get(Calendar.DATE)+"일");
          System.out.print(c.get(Calendar.HOUR)+"시");
          System.out.print(c.get(Calendar.MINUTE)+"분");
          System.out.println(c.get(Calendar.SECOND)+"초");  
          if(c.after(c2)) //c 시간이 c2 시간보다 클 경우 true . 반대는 before 메서드
               
System.out.println("현재 시간은 2000년 9월 11일 이후입니다.");
          else
               System.out.println("현재 시간은 2000년 9월 11일 이전입니다."); }}

 

             -출력 결과-

Calendar 클래스 시간과 날짜 출력
2009년11월19일2시15분42초
현재 시간은 2000년 9월 11일 이후입니다.
계속하려면 아무 키나 누르십시오 . . .

 

   import java.util.Calendar;
   class Test{
   public static void main(String[] args) {
      Calendar date=Calendar.getInstance();
      date.set(2005,7,31); //연월일 set
      System.out.println(toString(date)); //오버라이딩된 toString 호출
      System.out.println("=1일 후 = ");
      date.add(Calendar.DATE,1); //현재 날에 1일 더한다. 31일이므로 새달 1일이 된다.
      System.out.println(toString(date));
      System.out.println("=31일 후 = ");
      date.roll(Calendar.DATE,31); //현재 월의 날의 수를 기준으로 31일 돈 후 2일이 된다.
      System.out.println(toString(date)); }
   public static String toString(Calendar c) {
      return c.get(Calendar.YEAR)+"년"+c.get(Calendar.MONTH)+"월"

                +c.get(Calendar.DATE)+"일"; }}

-출력 결과-

2005년7월31일
=1일 후 =
2005년8월1일
=31일 후 =
2005년8월2일   <-- roll에 의한 변화. 달에는 영향을 미치지 않는다.
계속하려면 아무 키나 누르십시오 . . .

 

 

  Gregorian Calendar 클래스 

 

   Calendar 클래스를 상속받고 있다. 1년이 365.2526년 시간이 지날수록 계산이 틀려지는 것을

   해결할 수 있다. 윤년을 처리할 수 있는 메서드를 가진다. isLeapYear ( )

 

   isLeapYear (int year ) : 윤년이 맞다면 true를 반환 아니면 false를 반환한다.

  List 인터페이스

 

   순서가 있는 데이터의 집합이다. 데이터의 중복을 허용한다.대표적인 구현 클래스는 ArrayList,

   LinkedList, Stack, Vector 가 있다.

 

  ArrayList 클래스

 

  배열의 기능과 가장 비슷한 클래스이다. 저장공간으로 배열을 사용한다. 저장 순서가 유지되고

  중복이 허용된다.

 

  add ( ) : 해당 데이터를 리스트에 추가한다. 기본적으로 가장 뒤에 추가 위치 index 사용가능

  retainAll( ) : 해당 데이터가 자신의 리스트에 포함되어 있다면 true 아니면 false

  contains( ) : 해당 데이터가 자신의 리스트에 포함되어 있다면 true 아니면 false

  set ( ) : 해당 데이터를 수정한다. 바꾼다. 위치 index 사용가능

  get ( ) : 해당 데이터를 반환한다. 위치 index 사용가능

  remove ( ) : 해당 데이터를 삭제한다. 위치 index 사용가능

  size ( ) : 리스트의 크기를 반환한다. 원소 개수

 

   import java.util.*;
   class ArrayListTest{
       public static void main(String[] args) {
       final int LIMIT =10;
       String source="0123456789abcdefghijABCDEFGHI!@#$%^&*()ZZZ";
       int length=source.length(); //문자열의 개수 보관
     
ArrayList list= new ArrayList(length/LIMIT+10); //메모리 할당
      
for (int i=0; i<length; i+=LIMIT)  {
         if(i+LIMIT<length)
           list.add(source.substring(i,i+LIMIT)); //10개씩 문자를 add 추가한다.
         else
           list.add(source.substring(i));  }

      for (int i=0; i<list.size();i++ )
           System.out.println(list.get(i)); }}

 

-출력 결과-

0123456789
abcdefghij
ABCDEFGHI!
@#$%^&*()Z
ZZ
계속하려면 아무 키나 누르십시오 . . .

  LinkedList 클래스

 

   ArrayList와 동일한 내용을 가지고 있다. 데이터 추가시 첫번째 원소와 마지막 원소에 데이터를

   추가할 수 있는 addFirst( ), addLast( ) 메서드를 가지고 있다. Queue 인터페이스를 구현하고

   있다.

 

    peek( ) : 데이터 가지고 온다 (복사)

   polll( ) : 데이터를 가지고 온다 (잘라내기)

 

  Stack 클래스

 

    Last in First Out 형식을 사용한다. 다른 List 와 동일하나 add가 push. romove가 pop으로

    메서드를 사용한다.

 

  Vector 클래스

 

   Vector 클래스의 기본 용량은 10이다.

 

   addElement ( ) : 데이터를 추가한다.

   capacity ( ) : 클래스의 용량값을 반환한다.

 

   import java.util.Vector;
   class VectorTest{
      public static void main(String[] args) {
         Vector[] v=new Vector[3];
         v[0]=new Vector(); //기본 용량 10
         v[1]=new Vector(5); //기본 용량 5
         v[2]=new Vector(5,3); //기본 용량 5 넘칠때 3씩 증가
         for (int i=0; i<v.length; i++)  {
            System.out.println("V["+i+"] size ="+v[i].size());
            System.out.println("V["+i+"] capacity = "+v[i].capacity());   }
         for (int i=0; i<3;i++ )  
             for (int j=0; j<44;j++ )
                  v[i].addElement(new Integer(j));   
         for (int i=0; i<v.length; i++)  {
             System.out.println("V["+i+"] size ="+v[i].size());
             System.out.println("V["+i+"] capacity = "+v[i].capacity()); } }}

-출력 결과-

V[0] size =0
V[0] capacity = 10
V[1] size =0
V[1] capacity = 5
V[2] size =0
V[2] capacity = 5
V[0] size =44
V[0] capacity = 80
V[1] size =44
V[1] capacity = 80
V[2] size =44
V[2] capacity = 44
계속하려면 아무 키나 누르십시오 . . .

 

 

  Set 인터페이스 

 

   순서를 유지하지 않는다. 데이터의 중복을 허용하지 않는다. 대표적인 구현 클래스는 HashSet,

   TreeSet 이 있다.

 

  HashSet 클래스

 

   데이터의 순서를 유지하지 않는다. 중복을 허용하지 않으며 정렬 기능이 없다.

 

   add( ) : 데이터를 삽입한다. 중복 데이터는 제외한다.

 

   import java.util.*;
   class HashSetTest{
      public static void main(String[] args) {
      Object [] objarr = {"1",new Integer(1),"2","2","3","3","4","4","4"};
      Set set=new HashSet();
      for (int i=0; i<objarr.length; i++)  {
         set.add(objarr[i]);   } //해당 배열의 원소를 삽입한다.
       System.out.println(set); }}

 

-출력 결과-

[3, 2, 1, 1, 4]  <-- 중복된 데이터는 제외된다.
계속하려면 아무 키나 누르십시오 . . .


  TreeSet 클래스

 

   HashSet과 같으며 정렬기능이 추가되어 있다.

 

   subSet ( ) : 시작 값부터 끝값까지 검색하여 반환한다.

 

 

  Map 인터페이스

 

  키(key)와 값(value)이 쌍을 이루는 데이터 집합으로 순서를 유지하지 않는다. 값의 중복은 허용

  되나 key의 중복은 허용하지 않는다. 대표적인 구현 클래스는 HashMap, TreeMap, Hashtable

  이 있다.

 

  Hashtable 클래스

 

    Enumeration 인터페이스를 사용해서 값을 가져온다.

 

   put(키값, 값) : 해당 키와 값을 저장합니다.

   containsKey( ) : key값에 해당되는 데이터가 있다면 true

   containsValue( ) : 해당 값에 해당되는 데이터가 있다면 true

   keys( ) : 현재 모든 키값을 반환합니다.

   get ( ) : key에 해당하는 값을 반환합니다.

 

   import java.util.Hashtable;
   import java.util.Enumeration;
   class HashtableTest{
      public static void main(String[] args) {
          Hashtable ht = new Hashtable();
          ht.put("1","가위");
          ht.put("2","바위");
          ht.put("3","보");
          if(ht.containsKey("1"))
              System.out.println("가위 포함되어 있음");
          if(ht.containsValue("보"))
              System.out.println("보는 3번으로 포함되어 있음");
         System.out.println("Hashtable의 크기는 : "+ht.size());
         ht.remove("1");
         Enumeration enu=ht.keys();
         while(enu.hasMoreElements())  {
             Object key=enu.nextElement();
             Object value=ht.get(key);
             System.out.println("키 = "+key+" 값 = "+value); } }}

 

-출력 결과-

가위 포함되어 있음
보는 3번으로 포함되어 있음
Hashtable의 크기는 : 3
키 = 3 값 = 보
키 = 2 값 = 바위
계속하려면 아무 키나 누르십시오 . . .

  HashMap 클래스

 

   import java.util.HashMap;
   import java.util.Scanner;
   class HashMapTest{
      public static void main(String[] args) {
      HashMap map= new HashMap();
      map.put("abc","1234");
      map.put("asdf","1111");
      map.put("asdf","1234");
      Scanner s= new Scanner(System.in); //화면에서 입력받음
      while(true)  {
          System.out.println("id와 password 입력하세요 ");
          System.out.print("id : ");
          String id=s.nextLine().trim(); //입력받고 trim으로 공백 제거
          
System.out.println();
          System.out.print("password :");
          String ps=s.nextLine().trim();

          if(!map.containsKey(id)){
               System.out.println("입력하신 id는 존재하지 않습니다");
               continue;
          }else{
                if(!map.get(id).equals(ps))
              System.out.println("password가 맞지 않습니다");
           else{
              System.out.println("id와 password가 일치합니다");
              break;}  }  }}}

-출력 결과-

id와 password 입력하세요
id : abee

password :12
입력하신 id는 존재하지 않습니다
id와 password 입력하세요
id : abc

password :12
password가 맞지 않습니다
id와 password 입력하세요
id : asdf

password :1234
id와 password가 일치합니다
계속하려면 아무 키나 누르십시오 . . .

 

Properties 클래스

 

Hashtable을 상속받고 있다. 설정값중 변할 수 있는 값들을 따로 저장하거나 읽을때 사용

 

 

 

 

 

  SimpleDateFormat 클래스

 

   fomat 메서드를 사용하여 현재 날자 시간 정보의 원하는 포맷형태로 반환한다.

  

   import java.text.SimpleDateFormat;
   import java.util.Date;
     class SimpleFormatTest{
        public static void main(String[] args) {
          Date today=new Date();
          SimpleDateFormat sd1,sd2,sd3,sd4;
          sd1=new SimpleDateFormat("yyyy년mm월dd일"); //각 해당 format 설정
          sd2=new SimpleDateFormat("yyyy-mm-dd HH:mm:ss.SSS");//각 해당 format 설정
          sd3=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss a");//각 해당 format 설정
          sd4=new SimpleDateFormat("올해의 D번째 날입니다");//각 해당 format 설정
          System.out.println(sd1.format(today)); //format에 맞게 today 출력
          System.out.println(sd2.format(today));
          System.out.println(sd3.format(today));  
          System.out.println(sd4.format(today)); }}

   -출력 결과-

2009년16월19일
2009-16-19 14:16:34.875
2009-16-19 02:16:34 오후
올해의 323번째 날입니다
계속하려면 아무 키나 누르십시오 . . .

 

[출처] java.util 패키지|작성자 stryper_top


'JAVA' 카테고리의 다른 글

이미지 태그 SRC 경로 추출  (3) 2011.03.16
파일명 추출  (2) 2011.03.16
Thread 클래스  (3) 2011.03.08
HttpURLConnection 이용시 헤더값 세팅 방법  (3) 2011.03.03
java.net - Url 클래스  (5) 2011.03.03
Posted by GUCCI
, |

java.net - Url 클래스

JAVA / 2011. 3. 3. 15:50

import java.io.*;
import java.net.*;

public class UrlEx1 {
 public static void main(String[] args) throws Exception {
  String urlstr = null;
  BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  System.out.print("URL 페이지 입력 == >");
  urlstr = reader.readLine().trim();
  URL url = new URL(urlstr);
  System.out.println("프로토콜 : " + url.getProtocol());
  System.out.println("포트번호 : " + url.getPort());
  System.out.println("호스트 : " + url.getHost());
  System.out.println("URL 내용 : " + url.getContent());
  System.out.println("파일경로 : " + url.getFile());
  System.out.println("URL 전체 : " + url.toExternalForm());
 }
}


What Is a URL?

Uniform Resource Locator의 약자로 인터넷에 있는 자원(Resource)를 의미합니다.

사용자 삽입 이미지

Protocol identifier는 자원을 가져올 때 사용할 프로토콜을 나타냅니다.
Resource Name은 자원의 주소를 나타내며, 보통 다음과 같은 구성요소로 이루어져있습니다.
Host Name, File Name, Port Number, Reference

Creating a URL

일반 객체를 생성하듯이 new 키워드를 사용합니다.
URL gamelan = new URL("http://www.gamelan.com/");

상대경로는 다음과 같이 사용할 수 있습니다.
URL(URL baseURL, String relativeURL)

예를 들어, 다음과 같은 두 개의 URL에 상대경로가 있다고 가정하겠습니다.(실제로 있을지도;;)
http://www.gamelan.com/pages/Gamelan.game.html
http://www.gamelan.com/pages/Gamelan.net.html

이 때 위의 두 URL에 다음과 같이 상대경로로 접근할 수 있습니다.
URL gamelan = new URL("http://www.gamelan.com/pages/");
URL gamelanGames = new URL(gamelan, "Gamelan.game.html");
URL gamelanNetwork = new URL(gamelan, "Gamelan.net.html");

URL addresses with Special characters

URL에 특수 문자(예, 빈칸)가 있을 때는 URI를 사용한다음에 이것을 URL로 변환하면 URI에서 알아서 특수문자를 변환해 줍니다.

URI uri = new URI("http", "foo.com", "/hello world/", "");
URL url = uri.toURL();

MalformedURLException

URL 객체를 생성할 때 해당 URL 자원이 존재하지 않거나 올바르지 않은 프로토콜일 경우에 MalformedURLException 예외가 발생합니다. 이 예외는 catched exception이기 때문에 try-catch문으로 URL 생성코드를 감싸줘야 합니다.

try {
    URL myURL = new URL(. . .)
} catch (MalformedURLException e) {
    . . .
    // exception handler code here
    . . .
}


Parsing a URL

아래의 코드를 보면 URL에 어떤 메소드들이 있는지 알 수 있습니다.

import java.net.*;
import java.io.*;

public class ParseURL {
    public static void main(String[] args) throws Exception {
        URL aURL = new URL("http://java.sun.com:80/docs/books/tutorial"
                           + "/index.html?name=networking#DOWNLOADING");
        System.out.println("protocol = " + aURL.getProtocol());
    System.out.println("authority = " + aURL.getAuthority());
        System.out.println("host = " + aURL.getHost());
        System.out.println("port = " + aURL.getPort());
        System.out.println("path = " + aURL.getPath());
        System.out.println("query = " + aURL.getQuery());
        System.out.println("filename = " + aURL.getFile());
        System.out.println("ref = " + aURL.getRef());
    }
}


결과는 다음과 같습니다.

protocol = http
authority = java.sun.com:80
host = java.sun.com
port = 80
path = /docs/books/tutorial/index.html
query = name=networking
filename = /docs/books/tutorial/index.html?name=networking
ref = DOWNLOADING


Reading Directly from a URL

다음과 같은 코드를 사용하여 URL에서 직접 콘텐츠를 읽어 들일 수 있습니다.

import java.net.*;
import java.io.*;

public class URLReader {
    public static void main(String[] args) throws Exception {
    URL yahoo = new URL("http://www.yahoo.com/");
    BufferedReader in = new BufferedReader(
                new InputStreamReader(
                yahoo.openStream()));

    String inputLine;

    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);

    in.close();
    }
}


Connecting to a URL


URL 객체를 생성한 다음 openConnection 메소드를 사용하여 URLConnection 객체를 생성할 수 있습니다. 다음은 Yahoo.com URL의 Connection 객체를 만드는 예제 코드입니다.

try {
    URL yahoo = new URL("http://www.yahoo.com/");
    URLConnection yahooConnection = yahoo.openConnection();
    yahooConnection.connect();

} catch (MalformedURLException e) {     // new URL() failed
    . . .
} catch (IOException e) {               // openConnection() failed
    . . .
}

URLConnection.connect 메소드를 사용하여 Connection을 초기화 할 수 있는데 매번 명시적으로 호출하지 않아도 됩니다. getInputStream, getOutputStream 같은 메소드를 호출할 때 암묵적으로 호출하기 때문입니다.

Reading from and Writing to a URLConnection

URLConnection 클래스는 네트워크를 사용하여 URL과 의사소통을 하기 위한 다양한 메소드를 제공합니다. HTTP를 위한 기능들이 많이 있지만, 대부분의 다른 프로토콜을 위한 기능도 제공하고 있습니다.

Reading from a URLConnection

URL에서 직접 읽어오기와 비슷합니다.

import java.net.*;
import java.io.*;

public class URLConnectionReader {
    public static void main(String[] args) throws Exception {
        URL yahoo = new URL("http://www.yahoo.com/");
        URLConnection yc = yahoo.openConnection();
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                yc.getInputStream()));
        String inputLine;

        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);
        in.close();
    }
}

Writing to a URLConnection

URLConnection 객체를 사용하여 OutputStream 객체를 얻어서 ObjectOutputStream을 생성한 다음 URL로 원하는 데이터를 posting 한 뒤에 서버에서 처리한 결과를 URLConnection객체의 InputStream을 받아서 BufferedReader로 읽는 프로그램입니다.
import java.io.*;
import java.net.*;

public class Reverse {
public static void main(String[] args) throws Exception {

if (args.length != 2) {
System.err.println("Usage: java Reverse " +
"http://<location of your servlet/script>" +
" string_to_reverse");
System.exit(1);
}

String stringToReverse = URLEncoder.encode(args[1], "UTF-8");

URL url = new URL(args[0]);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);

OutputStreamWriter out = new OutputStreamWriter(
connection.getOutputStream());
out.write("string=" + stringToReverse);
out.close();

BufferedReader in = new BufferedReader(
new InputStreamReader(
connection.getInputStream()));

String decodedString;

while ((decodedString = in.readLine()) != null) {
System.out.println(decodedString);
}
in.close();
}
}

 

출처 : http://dumbung.com/main/bbs/board.php?bo_table=JAVA_LIBRARY&wr_id=27

'JAVA' 카테고리의 다른 글

이미지 태그 SRC 경로 추출  (3) 2011.03.16
파일명 추출  (2) 2011.03.16
Thread 클래스  (3) 2011.03.08
HttpURLConnection 이용시 헤더값 세팅 방법  (3) 2011.03.03
java.util 패키지  (3) 2011.03.03
Posted by GUCCI
, |

최근에 달린 댓글

글 보관함