..
DEV/java (42)
[java] File 클래스 활용
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

File 클래스

로컬의 자원(텍스트 파일 혹은 자바 파일 등등)을 자바 프로그래밍에서 사용하기 위해 객체 형식으로
변환해 주는 클래스를 말한다.

File 클래스의 API (java.io.*)

생성자

- File(String) : 로컬 시스템에 접근

File f = new File("");
File f = new File("test.txt"); // 특정 파일을 객체화 함. 현재 폴더의 파일만 찾음
File f = new File("C:\\java\\eclipse\\workspace\\test.txt"); // 파일 경로를 적어줄 수 있음.

"" 쌍 따옴표 안에서 경로 적으려면 역슬래시 두번 적은건 기본!!

존재하든 존재 안하든 관계 없이 파일 객체 생성 가능
나중에 사용시 생성 여부를 판단할 것이기 때문에 객체를 만드는 순간에는 그 객체의 파일이 존재 하지 않아도 됨.

- File(File, String) : 로컬 시스템에 접근

매번 경로와 파일명을 길게 써주기가 불편한 경우 사용한다.

File dir = new File("C:\\java\\eclipse\\workspace"); // 경로만 따로 빼준다.
FIle f = new File(dir, "test.txt");

- File(String, String) : 로컬 시스템에 접근

경로와 파일명을 따로 작성한다.
File dir = new File("C:\\java\\eclipse\\workspace","test.txt");



- File(URI) : 웹 / 로컬 시스템에 접근(file:으로 시작하는 경우만)


static은 클래스 명으로 접근 가능하다.

필드
자바의 특징 중 하나는 바로 플랫폼에 독립적인 것이다.

자바 File Field로 pathSeparator와 separator를 제공하는데 왜 굳이 이 필드를 써야 하냐면

윈도우
\ 폴더 구분
; 패스와 패스 사이를 연결하기 위해서 사용

리눅스
\
:

이렇게 달라지니까 자바에서 제공하는 것으로 사용한다면 문제없이 ok
\ : 역슬러시
: 콜론
; 세미콜론

메소드
File f = new File("test.txt");

f.canRead(); //읽을 수 있는가?
f.canWrite();//쓸수 있는가?

만약 파일이 읽기 전용이라면 f.canWrite는 false가 된다.

File f1 = new File("aaa.txt");
boolean bool = f1.createNewFile(); // 파일이 없다면 생성. 잘생성되면 true반환

잠시 존재했다가 없어져야하는 파일 temp파일

File ff = new File(".");//현재 디렉토리에 생성
File f = File.createTempFile("temp",".ksh",ff); //파일명(접두어), 확장자(접미사),경로

File f1 = new File();
f1.delete(); // 파일 삭제 (즉시)
f1.deleteOnExite//프로그램끝날때 지워라..

exit 프로그램 끝날때

f1.exists() // 파일이 있나 없나??

f.getAbsolutePath(); // 이파일의 절대 경로를 알아 낼때 상대경로도 알아내는 메소드 존재한다.

f.getName(); //파일 이름
f.getParent(); //파일의 경로 전체
f.getPath(); //name,과 parent를 합친것

File dir = new File("C:\\java\\eclipse\\workspace"); // 경로만 따로 빼준다.
FIle f = new File(dir, "test.txt");

dir.isDirectory(); // 디렉토리인가? true/false
f.isFile(); // 파일인가? true/false

f.isHidden(); //숨김 파일인가?
new Date(f.lastModifed()) // 마지막 수정일을 반환한다.
f.length()// 파일 크기 byte 단위

// 디렉토리 안의 모든 파일을 리스트 형식으로 가져온다.
string a = f.list();
File ff = f.listFiles();

File ff = new File("c://home//test");
String[] s = ff.list();
for(int i =0; i < s.length; i++){
s[i] // 파일 명을 반환한다.
}

File[] roots = File.listRoots();
for(int i=0; i<roots.length; i++){
roots[i] //모든 루트 출력
}

mkdir() // 새로운 디렉토리 생성
File f = new File("aaa");
f.mkdir(); //aaa.디렉토리 생성

File f = new File("aaa/bbb/ccc");
f.mkdirx(); //복수.디렉토리 생성


메소드

'DEV > java' 카테고리의 다른 글

JDBC 드라이버를 이용하여 접속 테스트 하기  (0) 2010.03.11
[ java ] 날짜 관련 클래스 정리  (0) 2009.08.23
velocity spring macro  (0) 2009.03.24
  Comments,     Trackbacks
[ java ] 날짜 관련 클래스 정리
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Calendar

- 날짜와 시간에 관한 정보를 제공하는 추상 클래스
  (추상 클래스 이기 때문에 생성자가 없다.)

[실행]

Calendar cal= Calendar.getInstance(); // 현재의 시간을 가지 calendar 객체를 반환

  System.out.println("Calendar 클래스를 이용한 시과 날짜 출력");
  System.out.print(cal.get(Calendar.YEAR)+"년");
  System.out.print(cal.get(Calendar.MONTH)+"월");
  System.out.print(cal.get(Calendar.DATE)+"일");
  System.out.print(cal.get(Calendar.HOUR)+"시");
  System.out.print(cal.get(Calendar.MINUTE)+"분");
  System.out.print(cal.get(Calendar.SECOND)+"초");

  Calendar currentDate = Calendar.getInstance();  
   DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
   String sysdate = df.format(currentDate.getTime());  
   System.out.println("현재시간 :" + sysdate);  

'DEV > java' 카테고리의 다른 글

[java] File 클래스 활용  (0) 2009.08.23
velocity spring macro  (0) 2009.03.24
hs-err-pid.log  (0) 2009.03.05
  Comments,     Trackbacks
velocity spring macro
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

velocity spring macro

1. input text 박스

#springFormInput("spec.fieldname" " 속성") #springShowErrors("" "spring_error")

2. input hidden
#springFormHiddenInput("spec.fieldname" "속성") #springShowErrors("" "spring_error")

3. input passwd
#springFormPasswordInput("spec.fieldname" " 속성") #springShowErrors("" "spring_error")

4. textarea
#springFormTextarea("spec.fieldname" " 속성") #springShowErrors("" "spring_error")

5. single selectbox
#springFormSingleSelect("spec.fieldname" $Map " 속성") #springShowErrors("" "spring_error")

6. radio button
#springFormRadioButtons("spec.fieldname" $useyn ""  "속성")

- Velocimacro : added #springThemeText(  code text ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springUrl(  relativeUrl ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springBind(  path ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springBindEscaped(  path htmlEscape ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springFormInput(  path attributes ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springFormPasswordInput(  path attributes ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springFormHiddenInput(  path attributes ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springFormTextarea(  path attributes ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springFormSingleSelect(  path options attributes ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springFormMultiSelect(  path options attributes ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springFormRadioButtons(  path options separator attributes ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springFormCheckboxes(  path options separator attributes ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springShowErrors(  separator classOrStyle ) : source = org/springframework/web/servlet/view/velocity/spring.vm
- Velocimacro : added #springCloseTag(  ) : source = org/springframework/web/servlet/view/velocity/spring.vm


#springFormInput()

spring매크로 사용 시 validation을 사용하면 자동으로 값이 바인딩 되어 진다.

그러나 처음 값을 바인딩 하려는 경우 값이 바인딩이 안된다. 왜그런걸까? 지금은 고민중...


TO_CHAR(SYSDATE, 'YYYYMMDD'), TO_CHAR(SYSDATE, 'HH24MISS')

'DEV > java' 카테고리의 다른 글

[ java ] 날짜 관련 클래스 정리  (0) 2009.08.23
hs-err-pid.log  (0) 2009.03.05
addeventListener 쓰는 이유??..  (0) 2009.01.12
  Comments,     Trackbacks
hs-err-pid.log
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
hs-err-pid.log

이와 같은 오류 메시지가 뜬다면 JVM에 이상이 있다는 것임.

jre 지우고 다시 깔자!


'DEV > java' 카테고리의 다른 글

velocity spring macro  (0) 2009.03.24
addeventListener 쓰는 이유??..  (0) 2009.01.12
request 요청경로 확인방법 정리  (0) 2009.01.12
  Comments,     Trackbacks
addeventListener 쓰는 이유??..
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

'DEV > java' 카테고리의 다른 글

hs-err-pid.log  (0) 2009.03.05
request 요청경로 확인방법 정리  (0) 2009.01.12
validator 값 검증  (0) 2009.01.08
  Comments,     Trackbacks
request 요청경로 확인방법 정리
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1. request.getContextPath() : 프로젝트 Context 명을 가져온다.

요청 : http://localhost/Project_test/test.jsp 경우
→ /Project_test 경로만 얻는다.

2. request.getRequestURI() : 프로젝트 Context명과 파일 경로를 가져온다.

요청 : http://localhost/Project_test/test.do 경우
→ /Project_test/test.do 까지 얻어온다.

3. request.getHeader("referer") : 요청을 한 부모페이지의 요청을 가지고 온다. 

현재 페이지 : http://localhost/test/test1.do
요청 : http://localhost/test/test2.do

/test/test1.do를 얻어온다.


request.getHeader("REFERER");
request.getRequestURI();
request.getRealPath("/")

4. request.getQueryString() : 요청 파라미터를 모두 가져온다.

5. request.getRequestURI() : 사용한, 파일 이름만 얻어오는 방법(Split)

String[] url = request.getRequestURI().split("/");

String fileName = url[url.length-1]; // 배열의 마지막 값이 파일이름

or

request.getRequestURI().substring(request.getRequestURI().lastIndexOf('/')+1)



request.getAttribute("javax.servlet.include.query_string")

request.getAttribute("javax.servlet.include.path_info")

request.getAttribute("javax.servlet.include.servlet_path")

request.getAttribute("javax.servlet.include.context_path")

request.getAttribute("javax.servlet.include.request_uri")

 

request.getAttribute("javax.servlet.forward.query_string")

request.getAttribute("javax.servlet.forward.path_info")

request.getAttribute("javax.servlet.forward.servlet_path")

request.getAttribute("javax.servlet.forward.context_path")

request.getAttribute("javax.servlet.forward.request_uri")

 

'DEV > java' 카테고리의 다른 글

addeventListener 쓰는 이유??..  (0) 2009.01.12
validator 값 검증  (0) 2009.01.08
sqlMap 복잡한 컬렉션(collection)  (0) 2009.01.07
  Comments,     Trackbacks
validator 값 검증
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
validator를 이용하여 손쉽게 값들을 검증 할 수 있다.

폼안에 있는 값들이 널값인가? 숫자를 입력해야 하는데 문자를 입력하진 않았는가? 등등 폼들의 값을 손쉽게 검증하는 것이다.

자바스크립에서 검증 하는 것 보다 validator을 이용하여 값을 검증하는 것이 더 안전하다.

자바스크립의 경우 클라이언트 언어이기 때문에 사용자들이 손쉽게 조작이 가능하므로 중요한 폼 값 검증의 경우에는

validator를 이용하자!!

< Spring 에서의 validator 사용 방법 >

1. A 패키지 안에 avalidator.java 파일을 만든다.

2. spring 설정 파일인 applicationContextA.xml 안에 validator 사용에 대해서 설정해 준다.

_M#]
3. aController 파일에 아래와 같이 입력하면 드디어 Controller에서 Validator를 사용할 수 있다.
 
4. 이제 AValidator 파일에 검증하려는 코드를 적고 Controller에서 이를 적용하면 된다.

5. validator 파일 만들기

1) org.springframework.validation.Validator 인터페이스를 사용한다.(두개의 메소드 존재함)
- boolean supports(Class arg0) :
- void validate(Object obj, Errors errors) :
                          Controller에서 넘어온 Object를 검사하고 에러가 있을 시 Error 발생

2) controller에서 호출 시 => aValidator.validate(aVo, errors);
                                           Vo에 담겨져 있는 모든 값을 validator에서 검증해 볼 수 있다.

3) validator 에서는... => if(isEmpty(aVo.getId()){ errors.rejectValue("id","required"); }
                                     if 조건에 맞는다면 id값이 올바르지 않으므로 에러를 반환(requird)해라!

'DEV > java' 카테고리의 다른 글

request 요청경로 확인방법 정리  (0) 2009.01.12
sqlMap 복잡한 컬렉션(collection)  (0) 2009.01.07
setView / setViewName  (0) 2008.12.29
  Comments,     Trackbacks
sqlMap 복잡한 컬렉션(collection)
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
부모테이블 a와 자식테이블 b 가 존재한다고 가정한다면

Dao를 통해서 부모테이블인 a 의 값을 가져올 수 있는 sql문을 

sqlMap에서 id 에 접근하여 Data를 들고 올때

Dao를 통해 자식테이블 b의 id에 접근 하지 않고서도 자식테이블 b의 data를 가져 올 수 있게 할 수 있다.

이것이 복잡한 컬렉션 즉 resultMap 이다. 

Vo파일1



sqlMap.xml파일

 
 <select id="select-aa" resultMap="resultMap아이디">
  SELECT /*+ INDEX(A PK_CCUROMI_CHASINO) */ 
         a1,
         a2,
         a3,
         a4
  FROM   aa
  WHERE  a1= #value#   
 </select>


<select id="select-ccuromi-data-list-with-chasino" parameterClass="String" resultClass="chasiDataVo">
  SELECT *
  FROM CT_CCUROMI_CHASI_DATA WHERE CHASINO = #value# ORDER BY ORDERED ASC
 </select>

_M#]

'DEV > java' 카테고리의 다른 글

validator 값 검증  (0) 2009.01.08
setView / setViewName  (0) 2008.12.29
숫자 -> 문자 문자 ->숫자 Integer.toString  (0) 2008.12.29
  Comments,     Trackbacks
setView / setViewName
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
void setView (Object view)
          Set a View object for this ModelAndView.

=> URL도 이동 / 화면도 이동한다.  완전 다른화면으로 이동한다. request가 이어지지 않는다.
     ex) mv.setView(new RedirectView("../url명.do"))
=> 새창으로 이동한다.
 void setViewName (String viewName)
          Set a view name for this ModelAndView,
          to be resolved by the DispatcherPortlet via a ViewResolver.

=> URL의 변화는 없고 화면만 변한다. request가 이어진다.
     ex) mv.setViewName("/화면이름view");

=> 주로 validation 할때 사용된다.
      에러가 있을 경우에 이전 창을 그대로 보여주고 에러부분은 에러 메시지를 띄우고 
      값이 입력된 부분은 내용이 그대로 전달된다. 즉 request값이 이어진다. 
     
      값이 그대로 남게 하기 위해서는 value="testVo.title" 이런식으로 이전에 입력한 값이
      Vo안에 담겨지도록 한다.

'DEV > java' 카테고리의 다른 글

sqlMap 복잡한 컬렉션(collection)  (0) 2009.01.07
숫자 -> 문자 문자 ->숫자 Integer.toString  (0) 2008.12.29
[sql-map] tip!!  (0) 2008.12.23
  Comments,     Trackbacks
숫자 -> 문자 문자 ->숫자 Integer.toString
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Integer.toString(숫자);
Integer.parseInt(문자); 

String 클래스의 static 메서드 valueOf는 기본 타입을 문자열로 바꾼다 

int istr = 37;

String.valueOf(istr);

'DEV > java' 카테고리의 다른 글

setView / setViewName  (0) 2008.12.29
[sql-map] tip!!  (0) 2008.12.23
[sql-map] Dao : getSqlMapClientTemplate  (0) 2008.12.23
  Comments,     Trackbacks