ďť??xml version="1.0" encoding="utf-8" standalone="yes"?>三级资源在线,日韩欧美精品一区二区三区经典 ,久久夜色精品http://www.aygfsteel.com/Collus/惜秦怀ĺ?/description>zh-cnWed, 02 Jul 2025 20:01:22 GMTWed, 02 Jul 2025 20:01:22 GMT60动态跟ítŞJava代码的执行状况工ĺ…?-BTracehttp://www.aygfsteel.com/Collus/articles/320789.html良帅良帅Thu, 13 May 2010 05:00:00 GMThttp://www.aygfsteel.com/Collus/articles/320789.htmlhttp://www.aygfsteel.com/Collus/comments/320789.htmlhttp://www.aygfsteel.com/Collus/articles/320789.html#Feedback0http://www.aygfsteel.com/Collus/comments/commentRss/320789.htmlhttp://www.aygfsteel.com/Collus/services/trackbacks/320789.htmlhttp://kenai.com/projects/btrace/pages/UserGuideă€?br /> 对于˜qčĄŒä¸­çš„Java˝E‹ĺşĺQŒĺ°¤ĺ…ść˜Żĺ‡ŢZş†(ji¨Łn)问题的程序,äź?x¨Ź)需要跟ítŞĺ…ść‰§čĄŒçŠśĺ†ľĺQŒäž‹ĺŚ‚äź ĺ…Ľçš„ĺ‚ć•°ć˜Żäť€äšˆă€ć‰§čĄŒäş†(ji¨Łn)多少旉™—´ĺQŒčż”ĺ›žçš„ĺŻščąĄć˜Żäť€äšˆďźŒćŠ›ĺ‡şäş?ji¨Łn)什么异常,äź? žlŸçš„ĺšćł•ĺŞčƒ˝ć˜ŻćŠŠ˝E‹ĺşć”šä¸€éďźŒĺŠ ä¸Šä¸€ĺ †logĺQŒä¸€ä¸Şäž‹ĺ­ćĽĺą•示下用BTrace的情况下ĺQŒć€ŽäšˆćĽčˇŸítŞä¸€ä¸Şć–šćł•çš„ć‰§čĄŒć—‰™—´ĺQ?br />
@BTrace (t¨Šng)public (t¨Šng)class (t¨Šng)MethodResponseTime (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)@TLS (t¨Šng)
private (t¨Šng)static (t¨Šng)long (t¨Šng)startTime;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)@OnMethod(clazz
="žcŐd",method="ć–ŇŽ(gu¨Š)ł•ĺ?/span>")
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public (t¨Šng)static (t¨Šng)void (t¨Šng)onCall(){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)println(
"enter (t¨Šng)this (t¨Šng)method");
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)startTime
=timeMillis();
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)@OnMethod(clazz
="žcŐd",method="ć–ŇŽ(gu¨Š)ł•ĺ?/span>",location=@Location(Kind.RETURN))
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public (t¨Šng)static (t¨Šng)void (t¨Šng)onReturn(){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)println(
"method (t¨Šng)end!");
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)println(strcat(
"Time (t¨Šng)taken (t¨Šng)ms",str(timeMillis()-startTime)));
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
}
用btrace执行上面的代码,žŽąĺŻäťĽĺŠ¨ć€çš„ç›‘ćŽ§äťŔL„çš„ç›Žĺ‰čżčĄŒçš„Java˝E‹ĺşä¸­ćŸžcȝš„ćŸć–šćł•çš„ć‰§čĄŒć—‰™—´ĺQŒć‰§čĄŒä¸Šé˘äťŁç çš„ć–šĺźĺڂ䏋ĺQˆjdk 6+ĺQ‰ďźš(x¨Ź)
btrace [pid] MethodResponseTime.class

˜q˜ćœ‰äž‹ĺŚ‚čŽˇĺ–č°ƒç”¨ĺ‚ć•°ă€č°ƒç”¨č€…çš„ĺŻščąĄĺŽžäž‹äťĽĺŠ(qi¨˘ng)˜q”ĺ›žĺ€źç­‰čŻˇĺ‚çœ‹User Guideă€?br />
btraceä¸ŢZş†(ji¨Łn)保持JVM˜qčĄŒçš„ĺŽ‰ĺ…¨ć€§ďźŒĺ› ć­¤ĺšäş†(ji¨Łn)很多的限ĺˆÓžźŒäž‹ĺŚ‚ä¸čƒ˝ćŠ›ĺ‡şĺź‚ĺ¸¸ă€äżŽć”šäź ĺ…Ľçš„ĺ‚ć•°çš„ĺ€š{€äżŽć”ščż”回借等ĺQŒĺŸşćœŹć˜Żä¸€ä¸ŞĺŞčŻČš„ĺŠ¨ć€ĺˆ†ćžäťŁç čżčĄ? 状况的工ĺ…řPźŒä˝†äťç„ść˜Żéžĺ¸¸çš„ćœ‰ç”¨ďźŒĺ…śĺŽžçŽ°ćœşĺˆść˜Żattach api + asm +  (t¨Šng)instrumentationă€?img src ="http://www.aygfsteel.com/Collus/aggbug/320789.html" width = "1" height = "1" />

]]>
StingUtilhttp://www.aygfsteel.com/Collus/articles/320748.html良帅良帅Wed, 12 May 2010 14:04:00 GMThttp://www.aygfsteel.com/Collus/articles/320748.htmlhttp://www.aygfsteel.com/Collus/comments/320748.htmlhttp://www.aygfsteel.com/Collus/articles/320748.html#Feedback0http://www.aygfsteel.com/Collus/comments/commentRss/320748.htmlhttp://www.aygfsteel.com/Collus/services/trackbacks/320748.html import  (t¨Šng)java.io.IOException; import  (t¨Šng)java.io...  é˜…话全文

]]>
FileUtilhttp://www.aygfsteel.com/Collus/articles/320747.html良帅良帅Wed, 12 May 2010 14:03:00 GMThttp://www.aygfsteel.com/Collus/articles/320747.htmlhttp://www.aygfsteel.com/Collus/comments/320747.htmlhttp://www.aygfsteel.com/Collus/articles/320747.html#Feedback0http://www.aygfsteel.com/Collus/comments/commentRss/320747.htmlhttp://www.aygfsteel.com/Collus/services/trackbacks/320747.html JAVA FileUtil

import  (t¨Šng)java.io. * ;

/**
* (t¨Šng)FileUtil. (t¨Šng)Simple (t¨Šng)file (t¨Šng)operation (t¨Šng)class.
*
* (t¨Šng)
@author  (t¨Šng)BeanSoft
*
*/
public  (t¨Šng) class  (t¨Šng)FileUtil (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)The (t¨Šng)buffer.
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
protected  (t¨Šng) static  (t¨Šng) byte  (t¨Šng)buf[] (t¨Šng) =  (t¨Šng) new  (t¨Šng) byte [ 1024 ];

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)Read (t¨Šng)content (t¨Šng)from (t¨Šng)local (t¨Šng)file. (t¨Šng)FIXME (t¨Šng)How (t¨Šng)to (t¨Šng)judge (t¨Šng)UTF-8 (t¨Šng)and (t¨Šng)GBK, (t¨Šng)the
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)correct (t¨Šng)code (t¨Šng)should (t¨Šng)be: (t¨Šng)FileReader (t¨Šng)fr (t¨Šng)= (t¨Šng)new (t¨Šng)FileReader(new
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)I(y¨Şng)nputStreamReader(fileName, (t¨Šng)"ENCODING")); (t¨Šng)Might (t¨Šng)let (t¨Šng)the (t¨Šng)user (t¨Šng)select (t¨Šng)the
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)encoding (t¨Šng)would (t¨Šng)be (t¨Šng)a (t¨Šng)better (t¨Šng)idea. (t¨Šng)While (t¨Šng)reading (t¨Šng)UTF-8 (t¨Šng)files, (t¨Šng)the (t¨Šng)content
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)is (t¨Šng)bad (t¨Šng)when (t¨Šng)saved (t¨Šng)out.
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)*
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)fileName (t¨Šng)-
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)local (t¨Šng)file (t¨Šng)name (t¨Šng)to (t¨Šng)read
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@return
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@throws  (t¨Šng)Exception
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng)String (t¨Šng)readFileAsString(String (t¨Šng)fileName) (t¨Šng) throws  (t¨Šng)Exception (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)content (t¨Šng)
=  (t¨Šng) new  (t¨Šng)String(readFileBinary(fileName));

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
return  (t¨Šng)content;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)čŻŐd–ć–‡äšgňqśčż”回äؓ(f¨´)žl™ĺŽšĺ­—çŹŚé›†çš„ĺ­—çŹŚä¸?
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)fileName
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)encoding
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@return
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@throws  (t¨Šng)Exception
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng)String (t¨Šng)readFileAsString(String (t¨Šng)fileName, (t¨Šng)String (t¨Šng)encoding) (t¨Šng) throws  (t¨Šng)Exception (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)content (t¨Šng)
=  (t¨Šng) new  (t¨Šng)String(readFileBinary(fileName), (t¨Šng)encoding);

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
return  (t¨Šng)content;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)čŻŐd–ć–‡äšgňqśčż”回äؓ(f¨´)žl™ĺŽšĺ­—çŹŚé›†çš„ĺ­—çŹŚä¸?
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)fileName
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)encoding
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@return
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@throws  (t¨Šng)Exception
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng)String (t¨Šng)readFileAsString(InputStream (t¨Šng)in) (t¨Šng) throws  (t¨Šng)Exception (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)content (t¨Šng)
=  (t¨Šng) new  (t¨Šng)String(readFileBinary(in));

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
return  (t¨Šng)content;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)Read (t¨Šng)content (t¨Šng)from (t¨Šng)local (t¨Šng)file (t¨Šng)to (t¨Šng)binary (t¨Šng)byte (t¨Šng)array.
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)*
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)fileName (t¨Šng)-
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)local (t¨Šng)file (t¨Šng)name (t¨Šng)to (t¨Šng)read
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@return
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@throws  (t¨Šng)Exception
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng) byte [] (t¨Šng)readFileBinary(String (t¨Šng)fileName) (t¨Šng) throws  (t¨Šng)Exception (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)FileInputStream (t¨Šng)fin (t¨Šng)
=  (t¨Šng) new  (t¨Šng)FileInputStream(fileName);
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
return  (t¨Šng)readFileBinary(fin);
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)从输入流čŻŐd–ć•°ćŽä¸ŢZşŒ˜q›ĺˆśĺ­—节数睄.
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)streamIn
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@return
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@throws  (t¨Šng)I(y¨Şng)OException
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng) byte [] (t¨Šng)readFileBinary(InputStream (t¨Šng)streamIn) (t¨Šng) throws  (t¨Šng)I(y¨Şng)OException (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)BufferedInputStream (t¨Šng)in (t¨Šng)
=  (t¨Šng) new  (t¨Šng)BufferedInputStream(streamIn);

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)ByteArrayOutputStream (t¨Šng)out (t¨Šng)
=  (t¨Šng) new  (t¨Šng)ByteArrayOutputStream( 10240 );

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
int  (t¨Šng)len;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
while  (t¨Šng)((len (t¨Šng) =  (t¨Šng)in.read(buf)) (t¨Šng) >=  (t¨Šng) 0 )
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)out.write(buf, (t¨Šng)
0 , (t¨Šng)len);
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)in.close();

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
return  (t¨Šng)out.toByteArray(); (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)Write (t¨Šng)string (t¨Šng)content (t¨Šng)to (t¨Šng)local (t¨Šng)file.
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)*
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)fileName (t¨Šng)-
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)local (t¨Šng)file (t¨Šng)name (t¨Šng)will (t¨Šng)write (t¨Šng)to
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)content
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)text
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@return  (t¨Šng)true (t¨Šng)if (t¨Šng)success
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@throws  (t¨Šng)I(y¨Şng)OException
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng) boolean  (t¨Šng)writeFileString(String (t¨Šng)fileName, (t¨Šng)String (t¨Šng)content)
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
throws  (t¨Šng)I(y¨Şng)OException (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)FileWriter (t¨Šng)fout (t¨Šng)
=  (t¨Šng) new  (t¨Šng)FileWriter(fileName);
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)fout.write(content);
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)fout.close();
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
return  (t¨Šng) true ;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)Write (t¨Šng)string (t¨Šng)content (t¨Šng)to (t¨Šng)local (t¨Šng)file (t¨Šng)using (t¨Šng)given (t¨Šng)character (t¨Šng)encoding.
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)*
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)fileName (t¨Šng)-
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)local (t¨Šng)file (t¨Šng)name (t¨Šng)will (t¨Šng)write (t¨Šng)to
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)content
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)text
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)encoding
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)the (t¨Šng)encoding
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@return  (t¨Šng)true (t¨Šng)if (t¨Šng)success
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@throws  (t¨Šng)I(y¨Şng)OException
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng) boolean  (t¨Šng)writeFileString(String (t¨Šng)fileName, (t¨Šng)String (t¨Šng)content,
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)encoding) (t¨Šng)
throws  (t¨Šng)I(y¨Şng)OException (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)OutputStreamWriter (t¨Šng)fout (t¨Šng)
=  (t¨Šng) new  (t¨Šng)OutputStreamWriter( new  (t¨Šng)FileOutputStream(
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)fileName), (t¨Šng)encoding);

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)fout.write(content);
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)fout.close();
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
return  (t¨Šng) true ;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)Write (t¨Šng)binary (t¨Šng)byte (t¨Šng)array (t¨Šng)to (t¨Šng)local (t¨Šng)file.
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)*
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)fileName (t¨Šng)-
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)local (t¨Šng)file (t¨Šng)name (t¨Šng)will (t¨Šng)write (t¨Šng)to
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)content
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)binary (t¨Šng)byte (t¨Šng)array
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@return  (t¨Šng)true (t¨Šng)if (t¨Šng)success
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@throws  (t¨Šng)I(y¨Şng)OException
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng) boolean  (t¨Šng)writeFileBinary(String (t¨Šng)fileName, (t¨Šng) byte [] (t¨Šng)content)
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
throws  (t¨Šng)I(y¨Şng)OException (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)FileOutputStream (t¨Šng)fout (t¨Šng)
=  (t¨Šng) new  (t¨Šng)FileOutputStream(fileName);
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)fout.write(content);
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)fout.close();
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
return  (t¨Šng) true ;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)‹‚€(g¨¨)查文件名是否合法.文äšg名字不能包含字符\/:*?"<>|
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)*
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)fileName文äšgĺ?不包含čľ\ĺž?br /> (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) @return  (t¨Šng)boolean (t¨Šng)is (t¨Šng)valid (t¨Šng)file (t¨Šng)name
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng) boolean  (t¨Šng)isValidFileName(String (t¨Šng)fileName) (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
boolean  (t¨Šng)isValid (t¨Šng) =  (t¨Šng) true ;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)errChar (t¨Šng)
=  (t¨Šng) " \\/:*?\ " <>| " ; (t¨Šng)//
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) if  (t¨Šng)(fileName (t¨Šng) ==  (t¨Šng) null  (t¨Šng) ||  (t¨Šng)fileName.length() (t¨Šng) ==  (t¨Šng) 0 ) (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)isValid (t¨Šng)
=  (t¨Šng) false ;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)} (t¨Šng)
else  (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
for  (t¨Šng)( int  (t¨Šng)i (t¨Šng) =  (t¨Šng) 0 ; (t¨Šng)i (t¨Šng) <  (t¨Šng)errChar.length(); (t¨Šng)i ++ ) (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
if  (t¨Šng)(fileName.indexOf(errChar.charAt(i)) (t¨Šng) !=  (t¨Šng) - 1 ) (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)isValid (t¨Šng)
=  (t¨Šng) false ;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
break ;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
return  (t¨Šng)isValid;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)把非法文件名转换为合法文件名.
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)*
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)fileName
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@return
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng)String (t¨Šng)replaceInvalidFileChars(String (t¨Šng)fileName) (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)StringBuffer (t¨Šng)out (t¨Šng)
=  (t¨Šng) new  (t¨Šng)StringBuffer();

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
for  (t¨Šng)( int  (t¨Šng)i (t¨Šng) =  (t¨Šng) 0 ; (t¨Šng)i (t¨Šng) <  (t¨Šng)fileName.length(); (t¨Šng)i ++ ) (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
char  (t¨Šng)ch (t¨Šng) =  (t¨Šng)fileName.charAt(i);
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
//  (t¨Šng)Replace (t¨Šng)invlid (t¨Šng)chars: (t¨Šng)\\/:*?\"<>|
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) switch  (t¨Šng)(ch) (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
case  (t¨Šng) ' \\ ' :
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
case  (t¨Šng) ' / ' :
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
case  (t¨Šng) ' : ' :
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
case  (t¨Šng) ' * ' :
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
case  (t¨Šng) ' ? ' :
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
case  (t¨Šng) ' \" ' :
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
case  (t¨Šng) ' < ' :
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
case  (t¨Šng) ' > ' :
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
case  (t¨Šng) ' | ' :
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)out.append(
' _ ' );
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
break ;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
default :
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)out.append(ch);
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
return  (t¨Šng)out.toString();
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)Convert (t¨Šng)a (t¨Šng)given (t¨Šng)file (t¨Šng)name (t¨Šng)to (t¨Šng)a (t¨Šng)URL(URI) (t¨Šng)string.
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)*
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)fileName (t¨Šng)-
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)the (t¨Šng)file (t¨Šng)to (t¨Šng)parse
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@return  (t¨Šng)- (t¨Šng)URL (t¨Šng)string
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng)String (t¨Šng)filePathToURL(String (t¨Šng)fileName) (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)fileUrl (t¨Šng)
=  (t¨Šng) new  (t¨Šng)File(fileName).toURI().toString();
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
return  (t¨Šng)fileUrl;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
/**
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)Write (t¨Šng)string (t¨Šng)content (t¨Šng)to (t¨Šng)local (t¨Šng)file.
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)*
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)fileName (t¨Šng)-
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)local (t¨Šng)file (t¨Šng)name (t¨Šng)will (t¨Šng)write (t¨Šng)to
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@param  (t¨Šng)content
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)text
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@return  (t¨Šng)true (t¨Šng)if (t¨Šng)success
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)* (t¨Šng)
@throws  (t¨Šng)I(y¨Şng)OException
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
*/
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng) boolean  (t¨Šng)appendFileString(String (t¨Šng)fileName, (t¨Šng)String (t¨Šng)content)
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
throws  (t¨Šng)I(y¨Şng)OException (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)OutputStreamWriter (t¨Šng)fout (t¨Šng)
=  (t¨Šng) new  (t¨Šng)OutputStreamWriter( new  (t¨Šng)FileOutputStream(
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)fileName, (t¨Šng)
true ), (t¨Šng) " GBK " );

 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)fout.write(content);
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)fout.close();
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
return  (t¨Šng) true ;
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)
public  (t¨Šng) static  (t¨Šng) void  (t¨Šng)main(String[] (t¨Šng)args) (t¨Šng){
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)System.out.println(replaceInvalidFileChars(
" http://www.abc.com/ " ));
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
}





]]>
Oracle 打开游标­‘…čż‡ćœ€ĺ¤§ć•°é—Žé˘˜http://www.aygfsteel.com/Collus/articles/318562.html良帅良帅Fri, 16 Apr 2010 12:37:00 GMThttp://www.aygfsteel.com/Collus/articles/318562.htmlhttp://www.aygfsteel.com/Collus/comments/318562.htmlhttp://www.aygfsteel.com/Collus/articles/318562.html#Feedback0http://www.aygfsteel.com/Collus/comments/commentRss/318562.htmlhttp://www.aygfsteel.com/Collus/services/trackbacks/318562.html
实际上,˜q™ä¸Şé”™čŻŻçš„ĺŽŸĺ› ďźŒä¸ťčŚ˜q˜ć˜ŻäťŁç é—Žé˘˜ĺź•č“v的。Â?br /> ORA-01000: (t¨Šng)maximum (t¨Šng)open (t¨Šng)cursors (t¨Šng)exceededĺQŒčĄ¨˝Cşĺˇ˛žlčžžĺˆîC¸€ä¸Şčż›˝E‹ć‰“ĺź€çš„ćœ€ĺ¤§ć¸¸ć ‡ć•°ă€?

 (t¨Šng) (t¨Šng) ˜q™ć ˇçš„é”™čŻŻĺžˆĺŽŇŽ(gu¨Š)˜“ĺ‡şçŽ°ĺœ¨Java代码中的主要原因是:(x¨Ź)Java代码在执 行conn.createStatement()和conn.prepareStatement()的时候,实际上都是相当与在数据库中打开äş?ji¨Łn)一ä¸? cursor。尤其是ĺQŒĺŚ‚ćžœä˝ çš„createStatement和prepareStatement是在一个ĺó@环里面的话,žŽ×ƒźš(x¨Ź)非常ĺŽŇŽ(gu¨Š)˜“出现˜q™ä¸Şé—Žé˘˜ă€‚ĺ›  为游标一直在不停的打开ĺQŒč€Œä¸”ć˛Ąćœ‰ĺ…łé—­ă€?/span>

一般来čŻß_(d¨˘)źŒĺœ¨ĺ†™Java代码的时候,createStatement和prepareStatement都应该要攑֜¨ĺžŞçŽŻĺ¤–é˘ĺQŒč€Œä¸”使用äş?ji¨Łn)这ä? Statment后,ĺ?qi¨˘ng)时关闭。最好是在执行了(ji¨Łn)一‹ĆĄexecuteQuery、executeUpdate˝{‰äš‹ĺŽďźŒĺŚ‚ćžœä¸éœ€čŚä‹É用结果集 ĺQˆResultSetĺQ‰çš„ć•°ćŽĺQŒĺ°ąéŠŹä¸ŠžŽ†Statment关闭。Â?br />
对于出现ORA-01000错误˜q™ç§ćƒ…冾ĺQŒĺ•žUŻçš„加大open_cursorsňqśä¸ć˜ŻĺĽ˝ĺŠžćł•ĺQŒé‚ŁĺŞć˜Żć˛ŔL ‡ä¸ć˛ťćœŹă€‚厞际上ĺQŒäťŁç ä¸­çš„隐ć‚(zh¨¨n)Łĺƈ没有解除。Â?br /> 而且ĺQŒçťĺ¤§éƒ¨ĺˆ†ćƒ…冾下ĺQŒopen_cursors只需要设ž|Žä¸€ä¸ŞćŻ”čžƒĺ°çš„ĺ€ű|źŒžŽŢpƒö够ä‹É用了(ji¨Łn)ĺQŒé™¤éžćœ‰éžĺ¸¸ç‰šĺˆŤçš„茁湂ă€?

oracle (t¨Šng)9i (t¨Šng)默认的open_cursors=300 (t¨Šng) (t¨Šng)


一、看有问题的代码

 (t¨Šng)1 (t¨Šng)import (t¨Šng)java.sql.Connection;
 (t¨Šng)2 (t¨Šng)import (t¨Šng)java.sql.DriverManager;
 (t¨Šng)3 (t¨Šng)import (t¨Šng)java.sql.SQLException;
 (t¨Šng)4 (t¨Šng)import (t¨Šng)java.sql.Statement;
 (t¨Šng)5 (t¨Šng)
 (t¨Šng)6 (t¨Šng)public (t¨Šng)class (t¨Šng)Test (t¨Šng){
 (t¨Šng)7 (t¨Šng) (t¨Šng) (t¨Šng)public (t¨Šng)Connection (t¨Šng)getConnection() (t¨Šng){
 (t¨Šng)8 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)url (t¨Šng)= (t¨Šng)"jdbc:oracle:thin:@localhost:1521:ora9i";
 (t¨Šng)9 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)user (t¨Šng)= (t¨Šng)"scott";
10 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)password (t¨Šng)= (t¨Šng)"tiger";
11 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)Connection (t¨Šng)con (t¨Šng)= (t¨Šng)null;
12 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)try (t¨Šng){
13 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
14 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)con (t¨Šng)= (t¨Šng)DriverManager.getConnection(url, (t¨Šng)user, (t¨Šng)password);
15 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)} (t¨Šng)catch (t¨Šng)(Exception (t¨Šng)e) (t¨Šng){
16 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)e.printStackTrace();
17 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
18 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)return (t¨Šng)con;
19 (t¨Šng) (t¨Šng) (t¨Šng)}
20 (t¨Šng)
21 (t¨Šng) (t¨Šng) (t¨Šng)public (t¨Šng)static (t¨Šng)void (t¨Šng)main(String[] (t¨Šng)args) (t¨Šng)throws (t¨Šng)SQLException (t¨Šng){
22 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)long (t¨Šng)a (t¨Šng)= (t¨Šng)13819100000L;
23 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)long (t¨Šng)b (t¨Šng)= (t¨Šng)13819100600L; (t¨Šng)// (t¨Šng)问题ç‚?/span>
24 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)Connection (t¨Šng)con (t¨Šng)= (t¨Šng)null;
25 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)Statement (t¨Šng)stmt (t¨Šng)= (t¨Šng)null;
26 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)Test (t¨Šng)insert (t¨Šng)= (t¨Šng)new (t¨Šng)Test();
27 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)try (t¨Šng){
28 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)con (t¨Šng)= (t¨Šng)insert.getConnection();
29 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)for (t¨Šng)(long (t¨Šng)c (t¨Šng)= (t¨Šng)a; (t¨Šng)c (t¨Šng)<= (t¨Šng)b; (t¨Šng)c++) (t¨Šng){
30 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)sql (t¨Šng)= (t¨Šng)"insert (t¨Šng)into (t¨Šng)telepnum (t¨Šng)values(" (t¨Šng)+ (t¨Šng)c (t¨Šng)+ (t¨Šng)")";
31 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)stmt (t¨Šng)= (t¨Šng)con.createStatement(); (t¨Šng)// (t¨Šng)˜q™é‡Œć˜Żé—Žé˘˜çš„所ĺœ?/span>
32 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)stmt.executeUpdate(sql);
33 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
34 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)System.out.println("OK");
35 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)} (t¨Šng)catch (t¨Šng)(Exception (t¨Šng)e) (t¨Šng){
36 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)e.printStackTrace();
37 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)} (t¨Šng)finally (t¨Šng){
38 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)if (t¨Šng)(con (t¨Šng)!= (t¨Šng)null) (t¨Šng){
39 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)con.close();
40 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
41 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
42 (t¨Šng) (t¨Šng) (t¨Šng)}
43 (t¨Šng)}

二、分ćž?/span>

在ĺó@环里面每‹ĆĄéƒ˝ stmt = con.createStatement(); 而没有释放,˜q™ć ˇćŻä¸Şéƒ˝ĺ ç”¨äş†(ji¨Łn)一个服务器的游标资源,最后造成ĺ¤ŢpÓ|

三、解ĺ†Ďx(ch¨Žng)–šćĄ?/span>

1、增加关闭语ĺ?
 (t¨Šng)
1 (t¨Šng) (t¨Šng) (t¨Šng)con (t¨Šng)= (t¨Šng)insert.getConnection();
2 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)for (t¨Šng)(long (t¨Šng)c (t¨Šng)= (t¨Šng)a; (t¨Šng)c (t¨Šng)<= (t¨Šng)b; (t¨Šng)c++) (t¨Šng){
3 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)sql (t¨Šng)= (t¨Šng)"insert (t¨Šng)into (t¨Šng)telepnum (t¨Šng)values(" (t¨Šng)+ (t¨Šng)c (t¨Šng)+ (t¨Šng)")";
4 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)stmt (t¨Šng)= (t¨Šng)con.createStatement(); (t¨Šng)// (t¨Šng)˜q™é‡Œć˜Żé—Žé˘˜çš„所ĺœ?/span>
5 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)stmt.executeUpdate(sql);
6 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)stmt.close(); (t¨Šng)// (t¨Šng)用完äş?ji¨Łn)就关闭好äş?ji¨Łn)
7 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}

2、将˜q™ĺĽčŻç§ťĺŠ¨ĺˆ°ĺžŞçŽŻĺ¤–é˘ĺQŒćŽ¨čç”¨˜q™ä¸Ş
1 (t¨Šng)con (t¨Šng)= (t¨Šng)insert.getConnection();
2 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)stmt (t¨Šng)= (t¨Šng)con.createStatement(); (t¨Šng)// (t¨Šng)żUŐdŠ¨ĺˆ°čż™é‡ŒďźŒStatemet是可以重用的
3 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)for (t¨Šng)(long (t¨Šng)c (t¨Šng)= (t¨Šng)a; (t¨Šng)c (t¨Šng)<= (t¨Šng)b; (t¨Šng)c++) (t¨Šng){
4 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)sql (t¨Šng)= (t¨Šng)"insert (t¨Šng)into (t¨Šng)telepnum (t¨Šng)values(" (t¨Šng)+ (t¨Šng)c (t¨Šng)+ (t¨Šng)")";
5 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)stmt.executeUpdate(sql);
6 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
7 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)stmt.close(); (t¨Šng)// (t¨Šng)用完äş?ji¨Łn)就关闭好äş?ji¨Łn)

3、改装成扚w‡ć›´ć–°
1 (t¨Šng)con (t¨Šng)= (t¨Šng)insert.getConnection();
2 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)con.setAutoCommit(false);
3 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)stmt (t¨Šng)= (t¨Šng)con.createStatement(); (t¨Šng)// (t¨Šng)żUŐdŠ¨ĺˆ°čż™é‡ŒďźŒStatemet是可以重用的
4 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)for (t¨Šng)(long (t¨Šng)c (t¨Šng)= (t¨Šng)a; (t¨Šng)c (t¨Šng)<= (t¨Šng)b; (t¨Šng)c++) (t¨Šng){
5 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)String (t¨Šng)sql (t¨Šng)= (t¨Šng)"insert (t¨Šng)into (t¨Šng)telepnum (t¨Šng)values(" (t¨Šng)+ (t¨Šng)c (t¨Šng)+ (t¨Šng)")";
6 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)stmt.addBatch(sql);
7 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)}
8 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)stmt.executeBatch();
9 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng)con.commit();


四、ć€Čť“

 (t¨Šng) (t¨Šng) (t¨Šng) 鉴于上面的问题,在做基类的时候,在对数据˜q›čĄŒDML操作的时候,žŽ˝é‡ä¸čŚčŽŠĺŸşžcťčż”回Statement,而应该在基类直接˜q›čĄŒĺ…łé—­ă€‚ĺœ¨ĺšćŸĽčŻ˘çš„ć—śĺ€™ďźŒĺ? 以把statement留给˝E‹ĺşĺ‘˜č‡ŞĺˇŢpż›čĄŒć‰‹ĺŠ¨ĺ…łé—­ďźŒĺ…łé—­çš„ć–šćł•äؓ(f¨´)ĺQšçť™ResultSet一个方法可以得到StatementĺQŒç„śĺŽĺ†ĺ…łé—­ Statement。个äşř™Ž¤ä¸ř™ż™żUć–šćł•ć˜ŻćŻ”čžƒĺŚĽĺ˝“çš„ă€?br />

]]>
JAVA 旉™—´ć“ä˝œĺ¤§ĺ…¨http://www.aygfsteel.com/Collus/articles/318152.html良帅良帅Tue, 13 Apr 2010 05:22:00 GMThttp://www.aygfsteel.com/Collus/articles/318152.htmlhttp://www.aygfsteel.com/Collus/comments/318152.htmlhttp://www.aygfsteel.com/Collus/articles/318152.html#Feedback0http://www.aygfsteel.com/Collus/comments/commentRss/318152.htmlhttp://www.aygfsteel.com/Collus/services/trackbacks/318152.html Java 旉™—´ć“ä˝œĺ¤§ĺ…¨

函数列表ĺQ?br />


/**
 (t¨Šng) (t¨Šng) * 获取现在旉™—´
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @return ˜q”回旉™—´žcŐdž‹ yyyy-MM-dd HH:mm:ss
 (t¨Šng) (t¨Šng) */

public static Date getNowDate() {
 (t¨Šng) (t¨Šng) Date currentTime = new Date();
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 (t¨Šng) (t¨Šng) String dateString = formatter.format(currentTime);
 (t¨Šng) (t¨Šng) ParsePosition pos = new ParsePosition(8);
 (t¨Šng) (t¨Šng) Date currentTime_2 = formatter.parse(dateString, pos);
 (t¨Šng) (t¨Šng) return currentTime_2;
}

/**
 (t¨Šng) (t¨Šng) * 获取现在旉™—´
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @return˜q”ĺ›žçŸ­ć—śé—´ć źĺź?yyyy-MM-dd
 (t¨Šng) (t¨Šng) */

public static Date getNowDateShort() {
 (t¨Šng) (t¨Šng) Date currentTime = new Date();
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
 (t¨Šng) (t¨Šng) String dateString = formatter.format(currentTime);
 (t¨Šng) (t¨Šng) ParsePosition pos = new ParsePosition(8);
 (t¨Šng) (t¨Šng) Date currentTime_2 = formatter.parse(dateString, pos);
 (t¨Šng) (t¨Šng) return currentTime_2;
}

/**
 (t¨Šng) (t¨Šng) * 获取现在旉™—´
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @return˜q”回字珌串栟ĺź?yyyy-MM-dd HH:mm:ss
 (t¨Šng) (t¨Šng) */

public static String getStringDate() {
 (t¨Šng) (t¨Šng) Date currentTime = new Date();
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 (t¨Šng) (t¨Šng) String dateString = formatter.format(currentTime);
 (t¨Šng) (t¨Šng) return dateString;
}

/**
 (t¨Šng) (t¨Šng) * 获取现在旉™—´
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @return ˜q”ĺ›žçŸ­ć—śé—´ĺ­—˝WŚä¸˛ć źĺźyyyy-MM-dd
 (t¨Šng) (t¨Šng) */

public static String getStringDateShort() {
 (t¨Šng) (t¨Šng) Date currentTime = new Date();
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
 (t¨Šng) (t¨Šng) String dateString = formatter.format(currentTime);
 (t¨Šng) (t¨Šng) return dateString;
}

/**
 (t¨Šng) (t¨Šng) * 获取旉™—´ žŽć—ś:ĺˆ?żU?HH:mm:ss
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static String getTimeShort() {
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
 (t¨Šng) (t¨Šng) Date currentTime = new Date();
 (t¨Šng) (t¨Šng) String dateString = formatter.format(currentTime);
 (t¨Šng) (t¨Šng) return dateString;
}

/**
 (t¨Šng) (t¨Šng) * žŽ†é•żć—‰™—´ć źĺźĺ­—珌串č{换äؓ(f¨´)旉™—´ yyyy-MM-dd HH:mm:ss
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param strDate
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */
public static Date strToDateLong(String strDate) {
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 (t¨Šng) (t¨Šng) ParsePosition pos = new ParsePosition(0);
 (t¨Šng) (t¨Šng) Date strtodate = formatter.parse(strDate, pos);
 (t¨Šng) (t¨Šng) return strtodate;
}

/**
 (t¨Šng) (t¨Šng) * žŽ†é•żć—‰™—´ć źĺźć—‰™—´č˝Źć˘ä¸şĺ­—˝WŚä¸˛ yyyy-MM-dd HH:mm:ss
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param dateDate
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static String dateToStrLong(java.util.Date dateDate) {
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 (t¨Šng) (t¨Šng) String dateString = formatter.format(dateDate);
 (t¨Šng) (t¨Šng) return dateString;
}

/**
 (t¨Šng) (t¨Šng) * žŽ†çŸ­ć—‰™—´ć źĺźć—‰™—´č˝Źć˘ä¸şĺ­—˝WŚä¸˛ yyyy-MM-dd
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param dateDate
 (t¨Šng) (t¨Šng) * @param k
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */
public static String dateToStr(java.util.Date dateDate) {
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
 (t¨Šng) (t¨Šng) String dateString = formatter.format(dateDate);
 (t¨Šng) (t¨Šng) return dateString;
}

/**
 (t¨Šng) (t¨Šng) * žŽ†çŸ­ć—‰™—´ć źĺźĺ­—珌串č{换äؓ(f¨´)旉™—´ yyyy-MM-dd
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param strDate
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static Date strToDate(String strDate) {
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
 (t¨Šng) (t¨Šng) ParsePosition pos = new ParsePosition(0);
 (t¨Šng) (t¨Šng) Date strtodate = formatter.parse(strDate, pos);
 (t¨Šng) (t¨Šng) return strtodate;
}

/**
 (t¨Šng) (t¨Šng) * 得到现在旉™—´
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static Date getNow() {
 (t¨Šng) (t¨Šng) Date currentTime = new Date();
 (t¨Šng) (t¨Šng) return currentTime;
}

/**
 (t¨Šng) (t¨Šng) * 提取一个月中的最后一ĺ¤?br />  (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param day
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static Date getLastDate(long day) {
 (t¨Šng) (t¨Šng) Date date = new Date();
 (t¨Šng) (t¨Šng) long date_3_hm = date.getTime() - 3600000 * 34 * day;
 (t¨Šng) (t¨Šng) Date date_3_hm_date = new Date(date_3_hm);
 (t¨Šng) (t¨Šng) return date_3_hm_date;
}

/**
 (t¨Šng) (t¨Šng) * 得到现在旉™—´
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @return 字符ä¸?yyyyMMdd HHmmss
 (t¨Šng) (t¨Šng) */

public static String getStringToday() {
 (t¨Šng) (t¨Šng) Date currentTime = new Date();
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
 (t¨Šng) (t¨Šng) String dateString = formatter.format(currentTime);
 (t¨Šng) (t¨Šng) return dateString;
}

/**
 (t¨Šng) (t¨Šng) * 得到现在žŽć—ś
 (t¨Šng) (t¨Šng) */

public static String getHour() {
 (t¨Šng) (t¨Šng) Date currentTime = new Date();
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 (t¨Šng) (t¨Šng) String dateString = formatter.format(currentTime);
 (t¨Šng) (t¨Šng) String hour;
 (t¨Šng) (t¨Šng) hour = dateString.substring(11, 13);
 (t¨Šng) (t¨Šng) return hour;
}

/**
 (t¨Šng) (t¨Šng) * 得到现在分钟
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static String getTime() {
 (t¨Šng) (t¨Šng) Date currentTime = new Date();
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 (t¨Šng) (t¨Šng) String dateString = formatter.format(currentTime);
 (t¨Šng) (t¨Šng) String min;
 (t¨Šng) (t¨Šng) min = dateString.substring(14, 16);
 (t¨Šng) (t¨Šng) return min;
}

/**
 (t¨Šng) (t¨Šng) * ć ŇŽ(gu¨Š)Žç”¨ćˆˇäź ĺ…Ľçš„旜间襨˝Cşć źĺźďꌘq”ĺ›žĺ˝“ĺ‰ć—‰™—´çš„ć źĺź?如果是yyyyMMddĺQŒćł¨ć„ĺ­—母y不能大写ă€?br />  (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param sformat
 (t¨Šng) (t¨Šng) * (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) yyyyMMddhhmmss
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */
public static String getUserDate(String sformat) {
 (t¨Šng) (t¨Šng) Date currentTime = new Date();
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat(sformat);
 (t¨Šng) (t¨Šng) String dateString = formatter.format(currentTime);
 (t¨Šng) (t¨Šng) return dateString;
}

/**
 (t¨Šng) (t¨Šng) * 二个žŽć—ść—‰™—´é—´çš„塎ĺ€?必须保证二个旉™—´éƒ˝ć˜Ż"HH:MM"的格式,˜q”ĺ›žĺ­—çŹŚĺž‹çš„ĺˆ†é’Ÿ
 (t¨Šng) (t¨Šng) */

public static String getTwoHour(String st1, String st2) {
 (t¨Šng) (t¨Šng) String[] kk = null;
 (t¨Šng) (t¨Šng) String[] jj = null;
 (t¨Šng) (t¨Šng) kk = st1.split(":");
 (t¨Šng) (t¨Šng) jj = st2.split(":");
 (t¨Šng) (t¨Šng) if (Integer.parseInt(kk[0]) < Integer.parseInt(jj[0]))
 (t¨Šng) (t¨Šng) (t¨Šng) return "0";
 (t¨Šng) (t¨Šng) else {
 (t¨Šng) (t¨Šng) (t¨Šng) double y = Double.parseDouble(kk[0]) + Double.parseDouble(kk[1]) / 60;
 (t¨Šng) (t¨Šng) (t¨Šng) double u = Double.parseDouble(jj[0]) + Double.parseDouble(jj[1]) / 60;
 (t¨Šng) (t¨Šng) (t¨Šng) if ((y - u) > 0)
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) return y - u + "";
 (t¨Šng) (t¨Šng) (t¨Šng) else
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) return "0";
 (t¨Šng) (t¨Šng) }
}

/**
 (t¨Šng) (t¨Šng) * 得到二个日期间的间隔天数
 (t¨Šng) (t¨Šng) */

public static String getTwoDay(String sj1, String sj2) {
 (t¨Šng) (t¨Šng) SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
 (t¨Šng) (t¨Šng) long day = 0;
 (t¨Šng) (t¨Šng) try {
 (t¨Šng) (t¨Šng) (t¨Šng) java.util.Date date = myFormatter.parse(sj1);
 (t¨Šng) (t¨Šng) (t¨Šng) java.util.Date mydate = myFormatter.parse(sj2);
 (t¨Šng) (t¨Šng) (t¨Šng) day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
 (t¨Šng) (t¨Šng) } catch (Exception e) {
 (t¨Šng) (t¨Šng) (t¨Šng) return "";
 (t¨Šng) (t¨Šng) }
 (t¨Šng) (t¨Šng) return day + "";
}

/**
 (t¨Šng) (t¨Šng) * 旉™—´ĺ‰ćŽ¨ćˆ–ĺŽćŽ¨ĺˆ†é’?其中JJ表示分钟.
 (t¨Šng) (t¨Šng) */

public static String getPreTime(String sj1, String jj) {
 (t¨Šng) (t¨Šng) SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 (t¨Šng) (t¨Šng) String mydate1 = "";
 (t¨Šng) (t¨Šng) try {
 (t¨Šng) (t¨Šng) (t¨Šng) Date date1 = format.parse(sj1);
 (t¨Šng) (t¨Šng) (t¨Šng) long Time = (date1.getTime() / 1000) + Integer.parseInt(jj) * 60;
 (t¨Šng) (t¨Šng) (t¨Šng) date1.setTime(Time * 1000);
 (t¨Šng) (t¨Šng) (t¨Šng) mydate1 = format.format(date1);
 (t¨Šng) (t¨Šng) } catch (Exception e) {
 (t¨Šng) (t¨Šng) }
 (t¨Šng) (t¨Šng) return mydate1;
}

/**
 (t¨Šng) (t¨Šng) * 得到一个时间ĺšg后或前移几天的时é—?nowdate为时é—?delay为前żUŔLˆ–后ĺšg的天ć•?br />  (t¨Šng) (t¨Šng) */

public static String getNextDay(String nowdate, String delay) {
 (t¨Šng) (t¨Šng) try{
 (t¨Šng) (t¨Šng) SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 (t¨Šng) (t¨Šng) String mdate = "";
 (t¨Šng) (t¨Šng) Date d = strToDate(nowdate);
 (t¨Šng) (t¨Šng) long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;
 (t¨Šng) (t¨Šng) d.setTime(myTime * 1000);
 (t¨Šng) (t¨Šng) mdate = format.format(d);
 (t¨Šng) (t¨Šng) return mdate;
 (t¨Šng) (t¨Šng) }catch(Exception e){
 (t¨Šng) (t¨Šng) (t¨Šng) return "";
 (t¨Šng) (t¨Šng) }
}

/**
 (t¨Šng) (t¨Šng) * 判断是否润年
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param ddate
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static boolean isLeapYear(String ddate) {

 (t¨Šng) (t¨Šng) /**
 (t¨Šng) (t¨Šng) (t¨Šng) * 详细设计ĺQ?1.č˘?00整除是闰ňqß_(d¨˘)źŒĺŚĺˆ™ĺQ?2.不能č˘?整除则不是闰ňq?3.能袍4整除同时不能č˘?00整除则是闰年
 (t¨Šng) (t¨Šng) (t¨Šng) * 3.能袍4整除同时能被100整除则不是闰ňq?br />  (t¨Šng) (t¨Šng) (t¨Šng) */

 (t¨Šng) (t¨Šng) Date d = strToDate(ddate);
 (t¨Šng) (t¨Šng) GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
 (t¨Šng) (t¨Šng) gc.setTime(d);
 (t¨Šng) (t¨Šng) int year = gc.get(Calendar.YEAR);
 (t¨Šng) (t¨Šng) if ((year % 400) == 0)
 (t¨Šng) (t¨Šng) (t¨Šng) return true;
 (t¨Šng) (t¨Šng) else if ((year % 4) == 0) {
 (t¨Šng) (t¨Šng) (t¨Šng) if ((year % 100) == 0)
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) return false;
 (t¨Šng) (t¨Šng) (t¨Šng) else
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) return true;
 (t¨Šng) (t¨Šng) } else
 (t¨Šng) (t¨Šng) (t¨Šng) return false;
}

/**
 (t¨Šng) (t¨Šng) * ˜q”回žŸŽĺ›˝ć—‰™—´ć źĺź 26 Apr 2006
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param str
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static String getEDate(String str) {
 (t¨Šng) (t¨Šng) SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
 (t¨Šng) (t¨Šng) ParsePosition pos = new ParsePosition(0);
 (t¨Šng) (t¨Šng) Date strtodate = formatter.parse(str, pos);
 (t¨Šng) (t¨Šng) String j = strtodate.toString();
 (t¨Šng) (t¨Šng) String[] k = j.split(" ");
 (t¨Šng) (t¨Šng) return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);
}

/**
 (t¨Šng) (t¨Šng) * 获取一个月的最后一ĺ¤?br />  (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param dat
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */
public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd
 (t¨Šng) (t¨Šng) String str = dat.substring(0, 8);
 (t¨Šng) (t¨Šng) String month = dat.substring(5, 7);
 (t¨Šng) (t¨Šng) int mon = Integer.parseInt(month);
 (t¨Šng) (t¨Šng) if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {
 (t¨Šng) (t¨Šng) (t¨Šng) str += "31";
 (t¨Šng) (t¨Šng) } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {
 (t¨Šng) (t¨Šng) (t¨Šng) str += "30";
 (t¨Šng) (t¨Šng) } else {
 (t¨Šng) (t¨Šng) (t¨Šng) if (isLeapYear(dat)) {
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) str += "29";
 (t¨Šng) (t¨Šng) (t¨Šng) } else {
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) str += "28";
 (t¨Šng) (t¨Šng) (t¨Šng) }
 (t¨Šng) (t¨Šng) }
 (t¨Šng) (t¨Šng) return str;
}

/**
 (t¨Šng) (t¨Šng) * 判断二个旉™—´ć˜ŻĺŚĺœ¨ĺŒä¸€ä¸Şĺ‘¨
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param date1
 (t¨Šng) (t¨Šng) * @param date2
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static boolean isSameWeekDates(Date date1, Date date2) {
 (t¨Šng) (t¨Šng) Calendar cal1 = Calendar.getInstance();
 (t¨Šng) (t¨Šng) Calendar cal2 = Calendar.getInstance();
 (t¨Šng) (t¨Šng) cal1.setTime(date1);
 (t¨Šng) (t¨Šng) cal2.setTime(date2);
 (t¨Šng) (t¨Šng) int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);
 (t¨Šng) (t¨Šng) if (0 == subYear) {
 (t¨Šng) (t¨Šng) (t¨Šng) if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) return true;
 (t¨Šng) (t¨Šng) } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {
 (t¨Šng) (t¨Šng) (t¨Šng) // 如果12月的最后一周横跨来ňq´çŹŹä¸€ĺ‘¨çš„čŻĺˆ™ćœ€ĺŽä¸€ĺ‘¨ĺł˝Ž—ĺšćĽĺš´çš„çŹŹä¸€ĺ‘?br />  (t¨Šng) (t¨Šng) (t¨Šng) if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) return true;
 (t¨Šng) (t¨Šng) } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {
 (t¨Šng) (t¨Šng) (t¨Šng) if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
 (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) return true;
 (t¨Šng) (t¨Šng) }
 (t¨Šng) (t¨Šng) return false;
}

/**
 (t¨Šng) (t¨Šng) * 产生周序ĺˆ?卛_ž—ĺˆ°ĺ˝“ĺ‰ć—śé—´ć‰€ĺœ¨çš„ňq´ĺşŚć˜ŻçŹŹĺ‡ ĺ‘¨
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static String getSeqWeek() {
 (t¨Šng) (t¨Šng) Calendar c = Calendar.getInstance(Locale.CHINA);
 (t¨Šng) (t¨Šng) String week = Integer.toString(c.get(Calendar.WEEK_OF_YEAR));
 (t¨Šng) (t¨Šng) if (week.length() == 1)
 (t¨Šng) (t¨Šng) (t¨Šng) week = "0" + week;
 (t¨Šng) (t¨Šng) String year = Integer.toString(c.get(Calendar.YEAR));
 (t¨Šng) (t¨Šng) return year + week;
}

/**
 (t¨Šng) (t¨Šng) * 获得一个日期所在的周的星期几的日期ĺQŒĺŚ‚čŚć‰žĺ‡?002ňq?ćœ?日所在周的星期一是几ĺ?br />  (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param sdate
 (t¨Šng) (t¨Šng) * @param num
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */
public static String getWeek(String sdate, String num) {
 (t¨Šng) (t¨Šng) // 再č{换äؓ(f¨´)旉™—´
 (t¨Šng) (t¨Šng) Date dd = VeDate.strToDate(sdate);
 (t¨Šng) (t¨Šng) Calendar c = Calendar.getInstance();
 (t¨Šng) (t¨Šng) c.setTime(dd);
 (t¨Šng) (t¨Šng) if (num.equals("1")) // ˜q”ĺ›žć˜ŸćœŸä¸€ć‰€ĺœ¨çš„ć—ĽćœŸ
 (t¨Šng) (t¨Šng) (t¨Šng) c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
 (t¨Šng) (t¨Šng) else if (num.equals("2")) // ˜q”ĺ›žć˜ŸćœŸäşŒć‰€ĺœ¨çš„ć—ĽćœŸ
 (t¨Šng) (t¨Šng) (t¨Šng) c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
 (t¨Šng) (t¨Šng) else if (num.equals("3")) // ˜q”ĺ›žć˜ŸćœŸä¸‰ć‰€ĺœ¨çš„ć—ĽćœŸ
 (t¨Šng) (t¨Šng) (t¨Šng) c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
 (t¨Šng) (t¨Šng) else if (num.equals("4")) // ˜q”ĺ›žć˜ŸćœŸĺ››ć‰€ĺœ¨çš„ć—ĽćœŸ
 (t¨Šng) (t¨Šng) (t¨Šng) c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
 (t¨Šng) (t¨Šng) else if (num.equals("5")) // ˜q”ĺ›žć˜ŸćœŸäş”ć‰€ĺœ¨çš„ć—ĽćœŸ
 (t¨Šng) (t¨Šng) (t¨Šng) c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
 (t¨Šng) (t¨Šng) else if (num.equals("6")) // ˜q”ĺ›žć˜ŸćœŸĺ…­ć‰€ĺœ¨çš„ć—ĽćœŸ
 (t¨Šng) (t¨Šng) (t¨Šng) c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
 (t¨Šng) (t¨Šng) else if (num.equals("0")) // ˜q”ĺ›žć˜ŸćœŸć—Ľć‰€ĺœ¨çš„ć—ĽćœŸ
 (t¨Šng) (t¨Šng) (t¨Šng) c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
 (t¨Šng) (t¨Šng) return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
}

/**
 (t¨Šng) (t¨Šng) * ć ŇŽ(gu¨Š)Žä¸€ä¸Şć—ĽćœŸďꌘq”ĺ›žć˜Żć˜ŸćœŸĺ‡ çš„ĺ­—˝WŚä¸˛
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param sdate
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static String getWeek(String sdate) {
 (t¨Šng) (t¨Šng) // 再č{换äؓ(f¨´)旉™—´
 (t¨Šng) (t¨Šng) Date date = VeDate.strToDate(sdate);
 (t¨Šng) (t¨Šng) Calendar c = Calendar.getInstance();
 (t¨Šng) (t¨Šng) c.setTime(date);
 (t¨Šng) (t¨Šng) // int hour=c.get(Calendar.DAY_OF_WEEK);
 (t¨Šng) (t¨Šng) // hour中存的就是星期几äş?ji¨Łn),其范ĺ?1~7
 (t¨Šng) (t¨Šng) // 1=㘟㜟ć—?7=星期六,其他žcŔLލ
 (t¨Šng) (t¨Šng) return new SimpleDateFormat("EEEE").format(c.getTime());
}
public static String getWeekStr(String sdate){
 (t¨Šng) (t¨Šng) String str = "";
 (t¨Šng) (t¨Šng) str = VeDate.getWeek(sdate);
 (t¨Šng) (t¨Šng) if("1".equals(str)){
 (t¨Šng) (t¨Šng) (t¨Šng) str = "㘟㜟ć—?;
 (t¨Šng) (t¨Šng) }else if("2".equals(str)){
 (t¨Šng) (t¨Šng) (t¨Šng) str = "星期一";
 (t¨Šng) (t¨Šng) }else if("3".equals(str)){
 (t¨Šng) (t¨Šng) (t¨Šng) str = "㘟㜟äş?;
 (t¨Šng) (t¨Šng) }else if("4".equals(str)){
 (t¨Šng) (t¨Šng) (t¨Šng) str = "㘟㜟ä¸?;
 (t¨Šng) (t¨Šng) }else if("5".equals(str)){
 (t¨Šng) (t¨Šng) (t¨Šng) str = "㘟㜟ĺ›?;
 (t¨Šng) (t¨Šng) }else if("6".equals(str)){
 (t¨Šng) (t¨Šng) (t¨Šng) str = "㘟㜟äş?;
 (t¨Šng) (t¨Šng) }else if("7".equals(str)){
 (t¨Šng) (t¨Šng) (t¨Šng) str = "㘟㜟ĺ…?;
 (t¨Šng) (t¨Šng) }
 (t¨Šng) (t¨Šng) return str;
}

/**
 (t¨Šng) (t¨Šng) * 两个旉™—´äš‹é—´çš„夊ć•?br />  (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param date1
 (t¨Šng) (t¨Šng) * @param date2
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static long getDays(String date1, String date2) {
 (t¨Šng) (t¨Šng) if (date1 == null || date1.equals(""))
 (t¨Šng) (t¨Šng) (t¨Šng) return 0;
 (t¨Šng) (t¨Šng) if (date2 == null || date2.equals(""))
 (t¨Šng) (t¨Šng) (t¨Šng) return 0;
 (t¨Šng) (t¨Šng) // 转换为标准时é—?br />  (t¨Šng) (t¨Šng) SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
 (t¨Šng) (t¨Šng) java.util.Date date = null;
 (t¨Šng) (t¨Šng) java.util.Date mydate = null;
 (t¨Šng) (t¨Šng) try {
 (t¨Šng) (t¨Šng) (t¨Šng) date = myFormatter.parse(date1);
 (t¨Šng) (t¨Šng) (t¨Šng) mydate = myFormatter.parse(date2);
 (t¨Šng) (t¨Šng) } catch (Exception e) {
 (t¨Šng) (t¨Šng) }
 (t¨Šng) (t¨Šng) long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
 (t¨Šng) (t¨Šng) return day;
}

/**
 (t¨Šng) (t¨Šng) * 形成如下的日ĺŽ?ĺQ?ć ŇŽ(gu¨Š)Žäź ĺ…Ľçš„一个旜间返回一个睓ćž?㘟㜟ć—?星期一 㘟㜟äş?㘟㜟ä¸?㘟㜟ĺ›?㘟㜟äş?㘟㜟ĺ…?下面是当月的各个旉™—´
 (t¨Šng) (t¨Šng) * 此函数返回该日历˝WŹä¸€čĄŒć˜ŸćœŸć—Ľć‰€ĺœ¨çš„ć—ĽćœŸ
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param sdate
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */
public static String getNowMonth(String sdate) {
 (t¨Šng) (t¨Šng) // 取该旉™—´ć‰€ĺœ¨ćœˆçš„一ĺ?br />  (t¨Šng) (t¨Šng) sdate = sdate.substring(0, 8) + "01";

 (t¨Šng) (t¨Šng) // 得到˜q™ä¸Şćœˆçš„1ĺäh˜Żć˜ŸćœŸĺ‡?br />  (t¨Šng) (t¨Šng) Date date = VeDate.strToDate(sdate);
 (t¨Šng) (t¨Šng) Calendar c = Calendar.getInstance();
 (t¨Šng) (t¨Šng) c.setTime(date);
 (t¨Šng) (t¨Šng) int u = c.get(Calendar.DAY_OF_WEEK);
 (t¨Šng) (t¨Šng) String newday = VeDate.getNextDay(sdate, (1 - u) + "");
 (t¨Šng) (t¨Šng) return newday;
}

/**
 (t¨Šng) (t¨Šng) * 取得数据库主é”?生成格式为yyyymmddhhmmss+k位随机数
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param k
 (t¨Šng) (t¨Šng) * (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) (t¨Šng) 表示是取几位随机敎ͼŒĺŻäťĽč‡ŞĺˇąĺŽ?br />  (t¨Šng) (t¨Šng) */

public static String getNo(int k) {

 (t¨Šng) (t¨Šng) return getUserDate("yyyyMMddhhmmss") + getRandom(k);
}

/**
 (t¨Šng) (t¨Šng) * ˜q”ĺ›žä¸€ä¸Şéšćœşć•°
 (t¨Šng) (t¨Šng) *
 (t¨Šng) (t¨Šng) * @param i
 (t¨Šng) (t¨Šng) * @return
 (t¨Šng) (t¨Šng) */

public static String getRandom(int i) {
 (t¨Šng) (t¨Šng) Random jjj = new Random();
 (t¨Šng) (t¨Šng) // int suiJiShu = jjj.nextInt(9);
 (t¨Šng) (t¨Šng) if (i == 0)
 (t¨Šng) (t¨Šng) (t¨Šng) return "";
 (t¨Šng) (t¨Šng) String jj = "";
 (t¨Šng) (t¨Šng) for (int k = 0; k < i; k++) {
 (t¨Šng) (t¨Šng) (t¨Šng) jj = jj + jjj.nextInt(9);
 (t¨Šng) (t¨Šng) }
 (t¨Šng) (t¨Šng) return jj;
}






]]>
Ö÷ŐžÖŠÖëłŘÄŁ°ĺŁş äľËŽĎŘ| łç×óĘĐ| ĐěÖÝĘĐ| ČŐżŚÔňĘĐ| Ç­śŤ| ÂŤÉ˝ĎŘ| żŞÔ­ĘĐ| čĎłÇĎŘ| ̨śŤĎŘ| ×ŢĆ˝ĎŘ| ÓôÄĎĎŘ| ˝đ˛ýĘĐ| łçŔńĎŘ| şŁÂ×ĘĐ| ´óÓŕĎŘ| ˝đŐŻĎŘ| ˇÚŃôĘĐ| šĚŃôĎŘ| łçĐĹĎŘ| ÄţÉÂĎŘ| ËçŃôĎŘ| ¸Ę×ÎĎŘ| а˛ĎŘ| ÉňŃôĘĐ| ÄôČŮĎŘ| ÔŔÎ÷ĎŘ| ž°Äţ| ÄÇĆÂĎŘ| ÎÄËŽĎŘ| ˛ÔÎŕĎŘ| ŃôČŞĘĐ| ÁŮĎćĘĐ| śîźĂÄÉĆě| ŐňżľĎŘ| ÓŔĚŠĎŘ| Đ¡áĎŘ| ťŞÍ¤ĎŘ| ÎäĎçĎŘ| ÄĎťăÇř| Đ˰˛ĎŘ| şŁˇáĎŘ|