锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 1. 鏃ユ湡閮ㄥ垎 涓鐪肩湅榪囧幓鐩鎬俊澶у閮界煡閬撶敤Runtime.getRuntime().exec鏉ヨ皟鐢紝鎴戠殑闇姹傚氨鏄細
瀵逛簬鍍忔棩鏈熴佹椂闂村拰閽辮繖鏍風殑瀵硅薄鏉ヨ錛屼笉鍚岀殑鍥藉銆佸湴鍖洪兘鏈変笉鍚岀殑鏄劇ず鏍煎紡銆傚嵆渚挎槸鍚屼竴鍦板尯錛屼篃鍙兘瀛樺湪宸紓銆備絾鏄湪涓嶈冭檻鍥藉鍖栵紝鏃墮棿鏍煎紡鐩稿鍥哄畾鐨勬儏褰笅錛屽浜庢椂闂寸殑澶勭悊榪樻槸鐩稿姣旇緝綆鍗曠殑銆傚湪鎴戞渶榪戞墍浣滅殑涓涓皬紼嬪簭閲岄潰錛岄亣鍒頒簡涓浜涗笌鏃ユ湡鏈夊叧鐨勪笖涓嶈冭檻鍥介檯鍖栧拰澶嶆潅鏍煎紡鐨勯棶棰樸備緥濡傚浣曟眰涓や釜鏃ユ湡鎵宸殑澶╂暟錛屾墍宸殑鏈堟暟錛涘皢鏃ユ湡綾昏漿鍖栦負瑙勫畾鏍煎紡鐨勫瓧絎︿覆錛屽皢瑙勫畾鏍煎紡鐨勬棩鏈熷瓧絎︿覆杞垚鐩稿簲鐨勬棩鏈熺被絳夌瓑銆備笅闈㈡垜灝變互婧愮爜鐨勫艦寮忛愪竴浠嬬粛涓婇潰鎻愬埌鐨勯棶棰橈紝闇瑕佹敞鎰忕殑鏄繖浜涗唬鐮侀兘婧愪簬鎴戝仛鐨勪竴涓悕涓篋ateUtil鐨勭被錛屽叾涓嫭绔嬬殑鍙橀噺閮芥槸鍏朵腑鐨勬垚鍛樺彉閲忥紝鍑芥暟閮芥槸鍏舵垚鍛樺嚱鏁幫細
1.1.鎴愬憳鍙橀噺綆浠嬶細
瑕佹兂瀵規棩鏈熻繘琛屾牸寮忓寲棣栧厛灝遍渶瑕佷竴涓狣ateFormat綾葷殑瀹炰緥錛屽鏋滄病鏈夌壒孌婇渶姹傜殑璇濓紝SimpleDateFormat綾誨氨鏄竴涓笉閿欑殑閫夋嫨錛屽畠鍙互灝嗘棩鏈熺被鏍煎紡鍖栦負鍦ㄥ叾鏋勯犲嚱鏁頒腑鎸囧畾鐨勬棩鏈熸牸寮忋備緥濡傦紝濡傛灉鎴戜滑鎯寵灝嗘棩鏈熸牸寮忓寲涓虹被浼間簬2007-07-25榪欐牱鐨勬牸寮忥紝鎴戜滑灝卞彲浠ュ涓嬪畾涔夛細
/**浠yyy-MM-dd鐨勫艦寮忔樉紺烘牸寮忋**/
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sFullFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
榪欓噷闇瑕佹敞鎰忕殑鏄寚瀹氱殑鏃ユ湡鏍煎紡涓瀹氳鏄?#8221;yyyy-MM-dd”錛岃屼笉鑳芥槸”YYYY-MM-DD”錛屽惁鍒欑殑灝變笉鑳芥甯告樉紺恒傚浜庤繖涓棶棰樻垜娌℃湁娣辯┒錛屽鏋滄湁瀵硅繖涓棶棰樻湁鐮旂┒鐨勬湅鍙嬫榪庣暀璦銆?br>
涓嬮潰鐨勪袱涓垚鍛樺彉閲忓垎鍒槸鏃ユ湡鍒嗛殧絎﹀瓧絎︿覆鍜屽瓧絎︿覆鍒嗛殧鍣紝涓撻棬鐢ㄦ潵瑙f瀽瀛楃涓叉牸寮忕殑鏃ユ湡銆?br>/**
*紼嬪簭涓富瑕佺殑鏃ユ湡鍒嗛殧絎︿負"-"鍜?/"錛屼笖鏃ユ湡搴忓垪涓?#8220;騫?鏈?鏃?#8221;鍨嬶紝鍏跺唴瀹圭己涓涓嶅彲
* 渚嬪:09/02/02鎴?009-02-02
**/
publicstaticfinal String DATE_SEPARATOR ="-/";
/**浣滄棩鏈熷垎鏋愪箣鐢?/
static StringTokenizer sToken;
1.2.鍙栧緱涓や釜鏃ユ湡涔嬮棿鎵宸ぉ鏁扮殑鏂規硶
閴翠簬java.util.Date綾葷殑緇濆ぇ澶氭暟鏂規硶閮戒笉寤鴻浣跨敤浜嗭紝鎵浠ユ垜涔熷氨涓嶈兘澶熷埄鐢―ate閲岄潰鏂逛究鐨刧etYear()錛実etMonth()錛実etDay()鏂規硶鏉ヨ綆楁棩鏈熷樊浜嗏旂幇鍦ㄧ殑JRE閮藉彲浠ヨ嚜鍔ㄥ崌綰э紝璋佺煡閬撳摢澶㏒UN紿佺劧鎶奃ate榪欎簺API鍘繪帀浜嗭紝閭f垜灝辨鍝棤娉簡銆備笉榪囪瘽鍙堣鍥炴潵灝辯畻鏄兘澶熶嬌鐢ㄨ繖浜涙柟娉曪紝鎴戜滑浼間箮涔熶笉澶ソ綆楋紝鍥犱負姣忎釜鏈堢殑鏃ユ湡鏁伴兘涓嶄竴鏍鳳紝濡傛灉鍗曠函鐢ㄤ袱涓棩鏈熺殑騫存湀鏃ヤ俊鎭潵璁$畻鏃ユ湡宸繕鐪熸槸鏈変簺楹葷儲銆傚熀浜庝互涓婁袱鐐瑰師鍥狅紝鎴戝湪鎴戠殑紼嬪簭閲岄噰鐢ㄤ簡GregorianCalendar鍋氫負鏃ユ湡璁$畻鐨勪富鍔涘啗銆傝繖涓被鏈変竴浜涘緢瀹炵敤鐨勬柟娉曪紝濡俫et(int)錛岃繖涓柟娉曞彲浠ヨ幏寰楀綋鍓嶆棩鏈熺被鐨勫悇欏規棩鏈熸寚鏍囥傛瘮濡傛垜浠湁涓涓棩鏈熺被鍚嶄負gcDate錛岃鑾峰彇瀹冩墍鍦ㄧ殑騫達紝鏈堬紝鏃ワ紝鑷抽渶瑕佽繖涔堝仛錛歡cDate.get(Calendar.YEAR), gcDate.get(Calendar.MONTH)浠ュ強gcDate.get(Calendar.DATE)銆備笉榪囩敱浜庝嬌鐢ㄨ繖縐嶆柟娉曡幏寰楃殑鏃ユ湡鍜屾湀浠介兘鏄棩鏈熺被鎵鎸囧畾鐨勫勾浠界殑錛屾墍浠ュ鏋滄垜浠煡閬撲袱涓棩鏈熷湪鍚屼竴騫翠喚鐨勮瘽鎵嶈兘浣跨敤gcDate1.get(Calendar.DATE)- gcDate2.get(Calendar.DATE)鏉ヨ幏寰楁棩鏈熷樊錛屽惁鍒欏氨涓嶈兘榪欎箞鍋氥?br>鎵浠ュ鏋滄兂瑕佽幏寰椾笉鍦ㄥ悓涓騫翠喚鐨勬棩鏈熷樊鐨勮瘽灝遍渶瑕佺敤鍒板彟涓涓湁鐢ㄧ殑鏂規硶錛欸regorianCalendar.add(int, int)錛岃繖涓柟娉曞彲浠ヨ鎴戜滑鍦ㄦ棩鏈熺被鎸囧畾鐨勬棩鏈熸寚鏍囷紙濡傚勾錛屾湀錛屾棩絳夛級涓婂姞涓婁竴涓暟瀛楋紝榪欎釜鏁板瓧鍙互鏄鏁頒篃鍙互涓鴻礋鏁般?鍏朵腑絎竴涓弬鏁版寚瀹氭墍瑕佸鍔犵殑鎸囨爣錛岀浜屼釜鍙傛暟鎸囧畾澧炲姞鐨勬暟閲忋備緥濡傛垜浠皟鐢╣cDate.add(Calendar.DATE錛?)鐨勮瘽錛屽鏋済cDate鍘熸潵浠h〃鐨勬椂闂翠負2007-07-24錛岄偅涔堣皟鐢ㄤ箣鍚庡氨鍙樻垚2007-07-25浜嗐備簬鏄垜浠氨鍙互榪欐牱璁$畻鏃ユ湡宸細璁╂棩鏈熸瘮杈冨皬鐨勯偅涓棩鏈熺敤add鍑芥暟閫愭笎“閫艱繎”閭d釜杈冨ぇ鐨勬棩鏈燂紝鐩村埌涓や釜鏃ユ湡瀹屽叏鐩哥瓑涓烘銆傝鏁板櫒涓寘鍚殑鏁伴噺鍗充負涓や釜鏃ユ湡鐨勫樊鍊箋?br>涓嬮潰鎴戠粰鍑轟簡澶氫釜鐨勮綆楁棩鏈熷樊鐨勬柟娉曪紝涓昏鍖呭惈涓や釜鐗堟湰錛屼竴涓増鏈弬鏁頒負鏍煎紡鍖栧瓧絎︿覆錛屽彟涓涓増鏈弬鏁頒負GregorianCalendar銆傚姛鑳藉寘鎷綆?#8220;浠婂ぉ涓庢湭鏉ョ殑鏌愪竴澶╀箣闂寸殑鏃ユ湡宸?#8221;鍜?#8220;緇欏畾涓や釜鏃ユ湡鐨勬棩鏈熷樊”銆備富瑕佺殑璁$畻闆嗕腑鍦ㄦ渶鍚庝竴涓猟aysBetween鍑芥暟涓婏紝璇ュ嚱鏁版帴鍙椾袱涓狦regorianCalendar綾諱綔涓哄弬鏁幫紝騫跺彲浠ヨ綆楀嚭涓や釜鏃ユ湡涔嬮棿鐨勬棩鏈熷樊錛屽鏋滅敤鎴風粰鍑虹殑杈冨ぇ鐨勬棩鏈熷拰杈冨皬鐨勬棩鏈熼『搴忛鍊掔殑璇濓紝璇ュ嚱鏁頒細榪斿洖涓涓礋鏁板箋?br> /**
*榪斿洖鏈潵鐨勬煇涓澶╁拰浠婂ぉ鎵宸殑鏃ユ湡鏁?br> *娉ㄦ剰錛岃繖閲岃clone涓涓柊鐨勬棩鏈熶互鍏嶅鍘熷鏃ユ湡綾婚犳垚鐨勪慨鏀廣?br> *鑰屽湪daysBetween(GregorianCalendarpFormer,GregorianCalendarpLatter)灝?br> *鐩存帴澶勭悊鑰屼笉榪涜clone鍔ㄤ綔錛屽洜涓鴻繖閲屽凡緇忓仛浜?)
**/
publicstaticint daysBetween(GregorianCalendar pFurtherDay){
GregorianCalendar vToday = new GregorianCalendar();
GregorianCalendar vFurtherDay = (GregorianCalendar) pFurtherDay.clone();
return daysBetween(vToday,vFurtherDay);
}
/**涓婇潰鍑芥暟鐨凷tring鐗堟湰銆**/
publicstaticint daysBetween(String pFurtherDayStr){
GregorianCalendar vFurtherDay = DateUtil.parse2Cal(pFurtherDayStr);
GregorianCalendar vToday = new GregorianCalendar();
return daysBetween(vToday,vFurtherDay);
}
/**榪斿洖杈冩櫄鐨勬椂闂?latter)涓庤緝鏃╃殑鏃墮棿(former)鎵宸殑澶╂暟**/
publicstaticint daysBetween(String pFormerStr,String pLatterStr){
GregorianCalendar pFormer = DateUtil.parse2Cal(pFormerStr);
GregorianCalendar pLatter = DateUtil.parse2Cal(pLatterStr);
return daysBetween(pFormer,pLatter);
}
/**榪斿洖杈冩櫄鐨勬椂闂?latter)涓庤緝鏃╃殑鏃墮棿(former)鎵宸殑澶╂暟**/
publicstaticint daysBetween(GregorianCalendar pFormer,GregorianCalendar pLatter){
GregorianCalendar vFormer = pFormer,vLatter = pLatter;
boolean vPositive = true;
if( pFormer.before(pLatter) ){
vFormer = pFormer;
vLatter = pLatter;
}else{
vFormer = pLatter;
vLatter = pFormer;
vPositive = false;
}
vFormer.set(Calendar.MILLISECOND,0);
vFormer.set(Calendar.SECOND,0);
vFormer.set(Calendar.MINUTE,0);
vFormer.set(Calendar.HOUR_OF_DAY,0);
vLatter.set(Calendar.MILLISECOND,0);
vLatter.set(Calendar.SECOND,0);
vLatter.set(Calendar.MINUTE,0);
vLatter.set(Calendar.HOUR_OF_DAY,0);
int vCounter = 0;
while(vFormer.before(vLatter)){
vFormer.add(Calendar.DATE, 1);
vCounter++;
}
if( vPositive)
return vCounter;
else
return -vCounter;
}
1.3.涓や釜鏃ユ湡鐨勬湀浠藉樊
鑾峰緱涓や釜鏃ユ湡鐨勬湀浠藉樊鐨勬柟娉曚笌鑾峰緱鏃ユ湡宸熀鏈竴鑷淬備絾闇瑕佹敞鎰忕殑鏄紝璁$畻鏈堜喚宸笉鑳界畝鍗曠敤before()鏉ヨ繘琛岃綆椼傝繕闇瑕佽冭檻鍒頒粬浠殑騫翠喚鍙婃湀浠芥槸鍚﹀悓鏃剁浉絳夛紝鍙湁鍦ㄨ繖縐嶆儏鍐典笅錛屾墠鑳借幏寰楁湀浠藉樊鐨勬紜暟鍊箋備笅闈㈠悓鏍風粰鍑轟簡鏈堜喚宸殑涓や釜鐗堟湰鐨勫涓嚱鏁幫紝涓庢棩鏈熷樊鍩烘湰涓鑷達紝榪欓噷灝變笉鍐嶈禈榪般?br> /**
*緇欏畾涓や釜鏃墮棿鐩稿樊鐨勬湀鏁?br> */
//鏈湀鍜屾湭鏉ヤ竴涓湀鐨勬湀浠藉樊
publicstaticint monthsBetween(GregorianCalendar pFurtherMonth){
GregorianCalendar vToday = new GregorianCalendar();
GregorianCalendar vFurtherMonth = (GregorianCalendar) pFurtherMonth.clone();
return monthsBetween(vToday,vFurtherMonth);
}
/**緇欏畾鏈堝垎鍜屾湰鏈堢殑鏈堜喚宸?*/
publicstaticint monthsBetween(String pFurtherMonth){
GregorianCalendar vToday = new GregorianCalendar();
GregorianCalendar vFurtherMonth = DateUtil.parse2Cal(pFurtherMonth);
return monthsBetween(vToday,vFurtherMonth);
}
/**緇欏畾涓や釜鏃墮棿鐩稿樊鐨勬湀鏁?String鐗?*/
publicstaticint monthsBetween(String pFormerStr,String pLatterStr){
GregorianCalendar vFormer = DateUtil.parse2Cal(pFormerStr);
GregorianCalendar vLatter = DateUtil.parse2Cal(pLatterStr);
return monthsBetween(vFormer,vLatter);
}
publicstaticint monthsBetween(GregorianCalendar pFormer,GregorianCalendar pLatter){
GregorianCalendar vFormer = pFormer,vLatter = pLatter;
boolean vPositive = true;
if( pFormer.before(pLatter) ){
vFormer = pFormer;
vLatter = pLatter;
}else{
vFormer = pLatter;
vLatter = pFormer;
vPositive = false;
}
int vCounter = 0;
while(vFormer.get(vFormer.YEAR) != vLatter.get(vLatter.YEAR) ||
vFormer.get(vFormer.MONTH) != vLatter.get(vLatter.MONTH)){
vFormer.add(Calendar.MONTH, 1);
vCounter++;
}
if( vPositive)
return vCounter;
else
return -vCounter;
}
1.4.鏍煎紡杞崲
灝嗘棩鏈熺被杞崲鎴愬埗瀹氭牸寮忕殑瀛楃涓插彧闇瑕佽皟鐢―ateFormat.format()鍗沖彲銆傝屽弽榪囨潵灝辨瘮杈冮夯鐑︼紝鎴戜滑闇瑕佸瀛楃涓茶繘琛屽垎鏋愶紝鎵懼嚭鍏跺勾錛屾湀錛屾棩鐨勫煎垎鍒負浣曪紝鐒跺悗鍐嶇敤GregorianCalendar(vYear,vMonth,vDayOfMonth)鏋勫緩涓涓柊鐨勬棩鏈熺被銆?br>
/** 灝嗘棩鏈熷彉涓哄瓧絎︿覆鏍煎紡 **/
publicstatic String format(GregorianCalendar pCal){
returnsDateFormat.format(pCal.getTime());
}
publicstatic String format(Date pDate){
returnsDateFormat.format(pDate);
}
publicstatic String fullFormat(Date pDate){
returnsFullFormat.format(pDate);
}
/**灝嗗瓧絎︿覆鏍煎紡鐨勬棩鏈熻漿鎹負Calender**/
publicstatic GregorianCalendar parse2Cal(String pDateStr){
sToken = new StringTokenizer(pDateStr,DATE_SEPARATOR);
int vYear = Integer.parseInt(sToken.nextToken());
//GregorianCalendar鐨勬湀浠芥槸浠?寮濮嬬畻璧風殑錛屽彉鎬侊紒錛?br> int vMonth = Integer.parseInt(sToken.nextToken())-1;
int vDayOfMonth = Integer.parseInt(sToken.nextToken());
returnnew GregorianCalendar(vYear,vMonth,vDayOfMonth);
}
/**灝嗗瓧絎︿覆綾誨瀷鐨勬棩鏈?yyyy-MM-dd)杞崲鎴怐ate**/
publicstatic Date parse2Date(String pDate){
try {
returnsDateFormat.parse(pDate);
}catch(ParseException ex) {
returnnull;
}
}
1.5.鍏朵粬
榪欓儴鍒嗕富瑕佹槸涓浜涘父鐢ㄦ柟娉曠殑鍖呰錛屽寘鎷幏寰椾粖澶╂槸鏈湀鐨勭鍑犲ぉ錛屾湰鏈堟槸鏈勾鐨勭鍑犱釜鏈堬紝鑾峰緱緇欏畾瀛楃涓叉棩鏈熺殑鏈堜喚鏁幫紝浠ュ強鑾峰緱涓嬮潰榪欎釜鏈堜喚鍖洪棿[鏈湀錛屾湰鏈?pZoneSize]閲岀殑鏈堜喚鍒楄〃銆傚嵆濡傛灉鏈湀涓?鏈堬紝pZoneSize=6錛屽垯鑾峰緱鐨勬湀浠藉垪琛ㄥ簲璇ヤ負{6錛?錛?錛?錛?0錛?1錛?2}
/**榪斿洖浠婂ぉ鏄湰鏈堢殑絎嚑澶?*/
publicstaticint dayOfMonthOfToday(){
GregorianCalendar vTodayCal = new GregorianCalendar();
return vTodayCal.get(vTodayCal.DAY_OF_MONTH);
}
/**榪斿洖鏈湀鏄湰騫寸殑絎嚑涓湀**/
publicstaticint monthOfYear(){
GregorianCalendar vTodayCal = new GregorianCalendar();
return vTodayCal.get(vTodayCal.MONTH)+1;
}
//榪斿洖緇欏畾鏃ユ湡鐨勬湀浠?br> publicstatic String getMonth(String pFormattedDate){
StringTokenizer vSt = new StringTokenizer(pFormattedDate,"-");
vSt.nextToken();//璺寵繃騫翠喚
int val = Integer.parseInt(vSt.nextToken());
return val+"";
}
/**鑾峰緱浠庢湰鏈堝紑濮嬪埌鏈湀+pZoneSize鍖洪棿鍐呯殑鏈堟暟**/
publicstatic String[] monthList(int pZoneSize){
String[] vMonthList = new String[pZoneSize];
GregorianCalendar vTodayCal = new GregorianCalendar();
for(int i = 0; i < pZoneSize; i++){
vMonthList[i] = String.valueOf(vTodayCal.get(vTodayCal.MONTH)+1);
vTodayCal.roll(vTodayCal.MONTH,true);
}
return vMonthList;
}
2. 鏁板瓧閮ㄥ垎錛?br>榪欎竴閮ㄥ垎鎴戠殑宸ヤ綔姣旇緝綆鍗曪紝棣栧厛鏄牸寮忓寲緇欏畾鐨凞ouble鍙橀噺錛岃鍏跺彧鏄劇ず涓や綅灝忔暟銆傚叾嬈℃槸鐢變簬鎴戞墍鍋氱殑紼嬪簭浠樻棰濋兘鏄互涓囦綔涓哄崟浣嶇殑錛屾墍浠ュ湪蹇呰鐨勬椂鍊欏皢鍏惰漿涓轟互涓囦負鍗曚綅鐨勶紝甯︽湁涓や綅灝忔暟鐨勬暟瀛椼傜敱浜庢瘮杈冪畝鍗曪紝榪欓噷灝變笉澶氳錛屽悇浣嶇湅浠g爜灝卞ソ錛?br>/**浠呮樉紺哄皬鏁扮偣鍚庝袱浣嶇殑Formater**/
publicstatic DecimalFormat formatter = new DecimalFormat("####.##");
/**灝嗙粰瀹氱殑鏁板瓧鍙樻垚灝忔暟鐐瑰悗涓や綅鐨勫瓧絎︿覆**/
publicstatic String format(double pSrcVal){
returnformatter.format(pSrcVal);
}
/**灝嗗師濮嬫暟鎹櫎浠?0000鎵寰楃殑緇撴灉**/
publicstatic String fromat2Myriad(double pSrcVal){
returnformatter.format(pSrcVal/10000.0);
}
/**灝嗗師濮嬫暟鎹櫎浠?0000鎵寰楃殑緇撴灉**/
publicstatic String fromat2Myriad(String pSrcVal){
returnformatter.format(Double.parseDouble(pSrcVal)/10000.0);
}
/**灝嗙粰瀹氱殑鏁板瓧淇濈暀涓や綅灝忔暟榪斿洖**/
publicstaticdouble format2Double(double pSrcVal){
return (double)Math.round(pSrcVal*100)/100.0;
}
1. Map鐨勯亶鍘?br>鏈変漢鐪嬩簡榪欎釜鏍囬鍙兘鍙戠瑧錛屽洜涓鴻繖瀹炲湪澶畝鍗曪紝闅鵑亾鎴戝湪鍑戝瓧鏁幫紵鍙槸鏍規嵁鎴戣嚜宸辯殑緇忛獙鏉ヨ錛屼漢鐨勫瞾鏁伴暱鐨勬椂鍊欒蹇嗗姏鍗翠笉璺熺潃闀匡紝鍊掓湁涓嶈繘鍙嶉鐨勭幇璞°傛垜灝辨槸铏界劧鍐欒繃寰堝閬嶄絾浠嶇劧鐢ㄥ埌鐨勬椂鍊欏氨蹇樹釜騫插噣錛屽湪榪欓噷鍐欎竴涓嬪己鍖栬蹇咼
SortedMap pDataMap = new TreeMap();
Iterator itor = pDataMap.entrySet().iterator();
while(itor.hasNext()){
Map.Entry vEntry = (Entry) itor.next();
vEntry.getKey();
vEntry.getValue();
//鍋氫竴浜涘叾浠栫殑浜?#8230;…
}
2. 鏂囦歡鎿嶄綔
鏈枃涓昏鍏蟲敞綆鍗曠殑瀵硅薄搴忓垪鍖栫殑鐩稿叧鎿嶄綔錛屽浜庢洿涓鴻緇嗙殑鎿嶄綔榪囩▼錛岃鍙傜収銆奐ava緙栫▼鎬濇兂 2e銆嬨?br>2.1.鏂囦歡榪囨護鍣?br>鏂囦歡榪囨護鍣ㄤ富瑕佺敤鍦‵ileChooser鎴栬匜ile.listFiles()鏂規硶涓紝鐢ㄤ簬榪囨護鎺変竴浜涗笌鏈▼搴忔棤鍏崇殑綾誨瀷鏂囦歡銆傛湰渚嬬粰鍑轟竴涓療鐪嬬粰瀹氭枃浠跺悗緙鍚嶇殑鏂囦歡榪囨護鍣紝瀵逛簬緇欏畾鐨勬枃浠跺療鐪嬪叾鏂囦歡鍚嶏紝濡傛灉鍜岀粰瀹氱殑鍚庣紑鍚嶄竴鑷村垯榪斿洖true錛屽惁鍒欒繑鍥瀎alse銆?br>publicclass RecorderFileFilter implements FilenameFilter
{
/**鍚庣紑鍚嶃**/
String postfixStr;
public RecorderFileFilter(String postfix){
this.postfixStr = postfix;
}
publicboolean accept(File dir, String name) {
/**鍙垽鏂悗鏂囦歡鐨勭紑鍚嶆槸鍚︽紜嵆鍙**/
if( name.endsWith(postfixStr) )
returntrue;
else
returnfalse;
}
}
2.2.瀵硅薄鐨勪繚瀛樹笌璇誨彇
棣栧厛浠嬬粛涓涓嬫垜鐨勭▼搴忕殑瀛樺偍緇撴瀯錛氭垜鐨勬暟鎹繚瀛樺湪涓ょ綾誨瀷鐨勬枃浠朵腑錛屽嵆“鏃墮棿瀛楃涓?data”鍜?#8220;鏃墮棿瀛楃涓?plan”涓ょ綾誨瀷銆傚叾涓?data鏂囦歡鏄竴涓狧ashMap<String,String>綾葷殑搴忓垪鍖栨枃浠訛紝鑰?plan鏂囦歡鏄竴涓猄ortedMap<String,String>綾葷殑搴忓垪鍖栨枃浠躲備粬浠兘淇濆瓨鍦?#8220;user.dir/data”鐩綍涓嬨備笅闈㈢殑榪欎簺鏂規硶鐨勫姛鑳芥槸璇誨彇/淇濆瓨榪欎釜鐩綍涓嬫暟鎹枃浠訛紝濡傛灉浣犳兂淇濆瓨浣犺嚜瀹氫箟鐨勬枃浠跺埌鎸囧畾鐩綍錛屼笅闈㈢殑浠g爜鑷抽渶瑕佺◢寰慨鏀逛竴涓嬪嵆鍙嬌鐢細
/**鐢ㄤ互鏍囪瘑璇誨叆鏁版嵁鐨勭被鍨嬶紝涔熸槸鏂囦歡鍚庣紑鍚?*/
publicstaticfinal String DATA_TYPE = ".data";
publicstaticfinal String PLAN_TYPE = ".plan";
/**浠ョ▼搴忚繍琛岀洰褰曚綔涓哄熀鐩綍**/
publicstatic File appDir = new File(System.getProperty("user.dir"));
publicstatic File imgDir = new File(appDir,"img");
publicstatic File dataDir = new File(appDir,"data");
publicstatic File reportDir = new File(appDir,"report");
publicstatic FileInputStream fIn;
publicstatic FileOutputStream fOut;
publicstatic ObjectInputStream objIn;
publicstatic ObjectOutputStream objOut;
/**---------------鍔熻兘鍑芥暟閮ㄥ垎----------------------**/
/**
*鏌ユ壘騫惰鍏?user.home/data/"鐩綍涓嬫墍鏈夌殑璁板綍鏂囦歡錛屽皢鍏舵斁鍒頒竴涓狹ap涓?br> *HashMap鐨凨ey涓烘枃浠跺悕錛屼篃鏄瑺嬈句漢甯愭埛鐨処D鍙楓?br> *鍏充簬鑾峰緱鐨勬枃浠剁殑鍏蜂綋淇℃伅璇峰弬鐓ф妧鏈鏄庝功銆?br> *濡傛灉pType=DATA_TYPE錛屽垯dataMap鐨勬牸寮忎負<String,HashMap>
* pType=PLAN_TYPE錛屽垯dataMap鐨勬牸寮忎負<String,SortedMap>
*@returnSortedMap
*/
publicstatic HashMap loadAll(String pType){
/**銆鏁版嵁鏂囦歡鍚?綆鍘嗚處鍙風殑鏃墮棿)鍗充負ID銆**/
HashMap vDataMap = new HashMap();
/**鍚庣紑鍚嶄負data鐨勫嵆涓烘暟鎹枃浠?*/
File[] dataFiles = dataDir.listFiles(new RecorderFileFilter(pType));
for(int i = 0; i < dataFiles.length; i++){
try{
if( pType.equals(FileUtil.DATA_TYPE) ){
HashMap<String,String> hMap = (HashMap<String,String>)loadObjectFromFile(dataFiles[i]);
/**鍘繪帀鏂囦歡鍚嶇殑鍚庣紑鍚嶅嵆鎴栧緱key錛屼篃灝辨槸嬈犳甯愭埛ID**/
vDataMap.put(hMap.get("id"),hMap);
}elseif( pType.equals(FileUtil.PLAN_TYPE) ){
SortedMap<String,SortedMap> hMap = (SortedMap<String,SortedMap>)loadObjectFromFile(dataFiles[i]);
/**鍘繪帀鏂囦歡鍚嶇殑鍚庣紑鍚嶅嵆鎴栧緱key錛屼篃灝辨槸嬈犳甯愭埛ID**/
vDataMap.put(StringUtil.clearFileName(dataFiles[i]) ,hMap);
}else
thrownew Exception("璇誨彇浜嗛敊璇殑鏂囦歡綾誨瀷");
}
catch(Exception ex) {
MessageUtil.showErrMsg("璇誨彇鏁版嵁鏃跺嚭鐜伴敊璇紝鏁版嵁鏈夊彲鑳戒涪澶憋紒"+
"\n 鏂囦歡鍚嶄負:"+dataFiles[i].getName());
}
}
return vDataMap;
}
/**
*灝嗙粰瀹氬唴瀹瑰瓨鍏ユ枃浠朵腑.
*@parampContentMapMap鍏舵墍瑁呭唴瀹逛負<id(String), HashMap鎴朣ortedMap>
*/
publicstaticvoid saveAll(HashMap<String,String> pDataMap,SortedMap<String,String> pPlanMap){
Iterator itor = pDataMap.entrySet().iterator();
while(itor.hasNext()){
Map.Entry vEntry = (Entry) itor.next();
String id = (String) vEntry.getKey();
saveToFile(id,pDataMap,pPlanMap);
}
}
/**
*灝嗗埗瀹氭瑺嬈捐處鎴風殑淇℃伅瀛樺叆鏂囦歡涓?br> *@paramidString 榪欎釜淇℃伅鍦ㄤ繚瀛樻瑺嬈懼崗璁椂涓嶅彲鎴栫己
*@parampDataMapSortedMap
*@parampPlanMapSortedMap
*/
publicstaticvoid saveToFile(String id, HashMap<String,String> pDataMap,
SortedMap<String,String> pPlanMap){
try{
if( pDataMap != null )
saveObjectToFile(new File(dataDir,id+DATA_TYPE), pDataMap);
if( pPlanMap != null )
saveObjectToFile(new File(dataDir,id+PLAN_TYPE), pPlanMap);
}
catch(Exception ex) {
MessageUtil.showErrMsg("淇濆瓨鏁版嵁鏃跺嚭鐜伴敊璇紝鏁版嵁娌℃湁琚紜繚瀛橈紒");
}
}
/**
*灝嗘枃浠朵腑鐨勫簭鍒楀寲瀵硅薄璇誨嚭鏉?br> *@parampFileFile
*@returnObject
*@throwsException
*/
publicstatic Object loadObjectFromFile(File pFile) throws Exception {
fIn = new FileInputStream(pFile);
objIn = new ObjectInputStream(fIn);
Object obj = objIn.readObject();
fIn.close();
objIn.close();
return obj;
}
/**
*灝嗗璞″簭鍒楀寲鍒扮浉搴旂殑鏂囦歡涓幓--淇濆瓨鏁版嵁鏃跺欎笓鐢紝鍥犱負璇ュ嚱鏁板皢鏁版嵁淇濆瓨鍦╝ppDir/data鐩綍涓?br> *@parampFileNameString
*@paramobjObject
*@throwsException
*/
publicstaticvoid saveObjectToFile(File pFile,Object pObj) throws Exception
{
fOut = new FileOutputStream(pFile);
objOut = new ObjectOutputStream(fOut);
objOut.writeObject(pObj);
fOut.close();
objOut.close();
}
2.3.鍏朵粬
鐢變簬姣忎釜紼嬪簭閮芥湁鍥炬爣鏂囦歡錛屾墍浠ヤ粠鍒跺畾鐩綍璇誨叆鍥炬爣搴旇鏄瘡涓▼搴忛兘浼氱敤鍒扮殑銆傚叾嬈★紝鍒犻櫎鎸囧畾鐩綍涓嬬殑鎸囧畾綾誨瀷鏂囦歡浼間箮涔熷緢甯哥敤J
/**浠巌mg鏂囦歡澶逛腑鑾峰彇鍥炬爣**/
publicstatic ImageIcon getImageIcon(String pImageFileName){
File imgFile = new File(imgDir,pImageFileName);
ImageIcon imageIcon = new ImageIcon(imgFile.getAbsolutePath());
return imageIcon;
}
/**娓呴櫎reportDir鐩綍涓嬫墍鏈塰tml鏂囦歡**/
publicstaticvoid clearReportFiles(){
File vReportDir = new File(reportDir.getAbsolutePath());
File[] vReportFiles = vReportDir.listFiles(new FilenameFilter(){
publicboolean accept(File dir, String name){
if( name.endsWith("html"))
returntrue;
returnfalse;
}
});
for(int i = 0; i < vReportFiles.length; i++)
vReportFiles[i].delete();
}
]]>
@echo 浣犳彁渚涚殑jdk瀹夎鐩綍涓猴細%1
@echo off
IF EXIST %1\bin\java.exe (
rem 濡傝緭鍏ユ紜殑 Java2SDK 瀹夎鐩綍錛屽紑濮嬭緗幆澧冨彉閲?br>
@setx JAVA_HOME %1
@setx path %JAVA_HOME%\bin;%path%
@setx classpath %classpath%;.
@setx classpath %classpath%;%JAVA_HOME%\lib\tools.jar
@setx classpath %classpath%;%JAVA_HOME%\lib\dt.jar
@setx classpath %classpath%;%JAVA_HOME%\jre\lib\rt.jar
@echo on
@echo Java 2 SDK 鐜鍙傛暟璁劇疆瀹屾瘯錛屾甯擱鍑恒?br>
) ELSE (
IF %1=="" (
rem 濡傛病鏈夋彁渚涘畨瑁呯洰褰曪紝鎻愮ず涔嬪悗閫鍑?br>
@echo on
@echo 娌℃湁鎻愪緵 Java2SDK 鐨勫畨瑁呯洰褰?涓嶅仛浠諱綍璁劇疆錛岀幇鍦ㄩ鍑虹幆澧冨彉閲忚緗?br>
) ELSE (
rem 濡傛灉鎻愪緵闈炵┖鐨勫畨瑁呯洰褰曚絾娌℃湁bin\java.exe錛屽垯鎸囧畾鐨勭洰褰曚負閿欒鐨勭洰褰?br>
@echo on
@echo 闈炴硶鐨?nbsp;Java2SDK 鐨勫畨瑁呯洰褰?涓嶅仛浠諱綍璁劇疆錛岀幇鍦ㄩ鍑虹幆澧冨彉閲忚緗?br>
)
)
灝嗚繖涓枃浠惰В鍘嬬緝鍚庣殑exe鏂囦歡鍜宐at鏀懼湪鍚屼竴涓枃浠跺す涓嬪嵆鍙?br>
]]>
璋冪敤Oracle EXP鍛戒護瀹屾垚澶囦喚錛屽茍榪斿洖鐢熸垚鐨勫浠芥枃浠跺悕錛岃繖涓浠芥枃浠朵細寰堝揩鍦ㄥ叾浠栫殑鍦版柟琚嬌鐢ㄣ?br>閲囩敤Runtime.getRuntime().exec鎴戜滑閮界煡閬擄紝闇瑕佸鐞嗗畠鐨処nputStream錛屼互閬垮厤鍑虹幇鎵ц鐨勫懡浠よ緭鍑虹殑淇℃伅榪囧浣垮緱榪涚▼琚牭姝伙紝OK錛屾寜鐓ц繖鏍風殑鏂規硶錛屽紑鍐欙細 String[] cmds = new String[ 3 ];
cmds[ 0 ] = " cmd " ;
cmds[ 1 ] = " /C " ;
cmds[ 2 ] = "exp username/password@sid file=xxx.dmp log=xxx.log";
Process process = Runtime.getRuntime().exec(cmds);
try
{
InputStreamReader isr = new InputStreamReader(process.getInputStream());
BufferedReader br = new BufferedReader(isr);
String line = null ;
while ((line = br.readLine()) != null )
{
System.out.println(line);
} }
catch (IOException ioe)
{
ioe.printStackTrace();
}
String[] cmds = new String[3];
cmds[0] = "cmd";
cmds[1] = "/C";
cmds[2]=commandBuf.toString();
Process process=Runtime.getRuntime().exec(cmds);
boolean shouldClose=false;
try
{
InputStreamReader isr = new InputStreamReader(process.getErrorStream());
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null)
{
if(line.indexOf("閿欒")!=-1)
{
shouldClose=true;
break;
}
}
}
catch (IOException ioe)
{
shouldClose=true;
}
if(shouldClose)
process.destroy();
int exitVal = process.waitFor();
鎷呭績浠ュ悗鍐嶆紕板埌榪欐牱鐨勯棶棰橈紝澶囧繕涓涓?...
璇勮
濡傛灉鎴戞槸浣狅紝鎴戜細榪欎箞鏉ユ帓闄ug銆?
1錛屾妸瀵笽nputStream鐨勫鐞嗘斁鍒頒竴涓崟鐙琓hread閲岄潰銆?
2錛岀敤ProcessBuilder鐨剅edirectErrorStream鏉ュ悎騫禣utputStream鍜孍rrorStream銆傛敞鎰忓瓙榪涚▼鐨処nputStream瀵瑰簲鐖惰繘紼嬬殑OutStream銆傚鏋滀笉鍚堝茍榪欎袱涓祦鐨勮瘽鍒欏繀欏誨茍琛屾帓絀哄畠浠紝欏哄簭鐨勬帓絀轟細瀵艱嚧鎬濈儲銆?
寤鴻浣犲ソ濂界湅鐪?.0鐨凙PI鍜孞LS銆?nbsp; 鍥炲 鏇村璇勮
]]>
split 鏂規硶鑳藉寰堟柟渚跨殑灝嗗瓧絎︿覆鎸夌収涓瀹氱殑瑙勫垯鎷嗗垎寮銆?/span>
姣斿瀵逛簬涓嬮潰鐨勫瓧絎︿覆錛?/span>
Tom,Jane,Tony,Elva,Gigi
鍙璋冪敤濡備笅鐨勪唬鐮佸氨鍙互灝嗗悇涓悕瀛楁彁鍙栧嚭鏉ワ細
String value = "Tom,Jane,Tony,Elva,Gigi";
String[] names = value.split(",");
for(int i=0,n=names.length;i<n;i++)
{
System.out.println(names[i]);
}
榪愯緇撴灉錛?/span>
Tom
Jane
Tony
Elva
Gigi
鐪嬪埌榪欎釜榪愯緇撴灉錛屽緢澶氫漢閮借涓?/span> split 鏂規硶灝辨槸鎸夌収緇欏畾鐨勫瓧絎︿覆瀵瑰瓧絎︿覆榪涜鎷嗗垎錛岀煡閬撶鍒頒簡涓嬮潰鐨勯棶棰樸?/span>
鏈変竴涓瓧絎︿覆錛氫腑鍥?/span> . 鍖椾含 . 嫻鋒穩 . 瀛﹂櫌璺傝瑙f瀽姝ゅ瓧絎︿覆錛屽茍鎵撳嵃杈撳嚭“涓浗 鍖椾含 嫻鋒穩 瀛﹂櫌璺?/span> ”銆?/span>
浜庢槸鍐欎唬鐮佸涓嬶細
String value = " 涓浗 . 鍖椾含 . 嫻鋒穩 . 瀛﹂櫌璺?/span> ";
String[] names = value.split(".");
for(int i=0,n=names.length;i<n;i++)
{
System.out.print(names[i]+" ");
}
榪愯緇撴灉錛?/span>
瀵癸紝娌$湅閿欙紒娌℃湁浠諱綍杈撳嚭錛?/span>
璁╂垜浠潵鐪嬬湅 split 鏂規硶鐨勬柟娉曠鍚嶅惂錛?/span>
public String[] split(String regex)
榪欓噷鐨勫弬鏁扮殑鍚嶇О鏄?/span> regex 錛屼篃灝辨槸 Regular Expression 錛堟鍒欒〃杈懼紡錛夈傝繖涓弬鏁板茍涓嶆槸涓涓畝鍗曠殑鍒嗗壊鐢ㄧ殑瀛楃錛岃屾槸涓涓鍒欒〃杈懼紡錛岀湅浜?/span> split 鏂規硶鐨勫疄鐜頒唬鐮佸氨鏇村潥瀹氫簡鎴戜滑鐨勪俊蹇冿細
public String[] split(String regex, int limit) {
return Pattern.compile(regex).split(this, limit);
}
split 鐨勫疄鐜扮洿鎺ヨ皟鐢ㄧ殑 Matcher 綾葷殑 split 鐨勬柟娉曘傝鑰呭凡緇忕煡閬擄紝“ . ”鍦ㄦ鍒欒〃杈懼紡涓湁鐗規畩鐨勫惈涔夛紝鍥犳鎴戜滑浣跨敤鐨勬椂鍊欏繀欏昏繘琛岃漿涔夈?/span>
淇敼浠g爜濡備笅錛?/span>
private static void split2()
{
String value = " 涓浗 . 鍖椾含 . 嫻鋒穩 . 瀛﹂櫌璺?/span> ";
String[] names = value.split("\\.");
for(int i=0,n=names.length;i<n;i++)
{
System.out.print(names[i]+" ");
}
}
榪愯緇撴灉 錛?/span>
涓浗 鍖椾含 嫻鋒穩 瀛﹂櫌璺?/span>