锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
妯℃澘鏂規(guī)硶涓垎涓ょ鏂規(guī)硶錛氫竴縐嶆槸妯℃澘鏂規(guī)硶錛屽彟涓縐嶆槸鍩烘湰鏂規(guī)硶銆?BR> 妯℃澘鏂規(guī)硶錛氬氨鏄妸鍩烘湰鏂規(guī)硶緇勫悎鍦ㄤ竴璧峰艦鎴愪竴涓葷畻娉曟垨鍒欐昏涓猴紝榪欎釜妯℃澘鏂規(guī)硶涓鑸細(xì)鍦ㄦ娊璞″畾涔夊茍涓斿湪瀛愮被縐嶄笉鍔犱互淇敼鐨勭戶鎵夸笅鏉ャ備竴涓娊璞$被鍙互鏈変換鎰忓涓ā鏉挎柟娉曘?BR> 鍩烘湰鏂規(guī)硶錛氬畠鍙堝垎涓烘娊璞℃柟娉曪紝鍏蜂綋鏂規(guī)硶錛岄挬瀛愭柟娉曘?BR> 鎶借薄鏂規(guī)硶鐢辨娊璞$被鐢蟲槑錛岀敱瀛愮被鍏蜂綋瀹炵幇錛涘叿浣撴柟娉曠敱鎶借薄綾葷敵鏄庡茍瀹炵幇錛岃屽瓙綾誨茍涓嶅疄鐜版垨鍒欑疆鎹紝榪欓噷闈篃鍙互鏈夊伐鍘傛柟娉曪紱閽╁瓙鏂規(guī)硶錛岀敱鎶借薄綾葷敵鏄庡茍瀹炵幇錛屼絾鏄畠鏄竴涓┖鐨勫疄鐜幫紝涓鑸兘鏄敱瀛愮被榪涜鎵╁紶瀹炵幇銆?img src ="http://www.tkk7.com/sky_team/aggbug/10550.html" width = "1" height = "1" />
]]>
import java.io.*;
public class FileRead{
private static double totalFile = 0;
private static double totalDirectory = 0;
public String replace(String value){
StringBuffer replace = new StringBuffer(value);
int i = 0;
int last = replace.lastIndexOf("鈹鈹");
i = replace.indexOf("鈹鈹");
while((i != last)&&(i != -1)){
replace.replace(i,i+"鈹鈹".length()," ");
i = replace.indexOf("鈹鈹");
last = replace.lastIndexOf("鈹鈹");
}
return replace.toString();
}
public void searchFile(File f,String value,boolean b)throws IOException{
StringBuffer string = new StringBuffer(value);
string.append("鈹鈹");
boolean bool = b;
String path = f.getAbsolutePath();
File currentFile = new File(path); //鍙栧緱褰撳墠璺緞鐨勬枃浠?BR> File[] file = currentFile.listFiles();
for(int i=0;i<file.length;i++){
StringBuffer s = null;
String lastDirectory = null;
/*
* 鍒ゆ柇鏂囦歡澶規(guī)槸鍚︿負(fù)璇ョ洰褰曚笅鐨勬渶鍚庝竴涓枃浠跺す錛屽鏋滄槸鐨勮瘽錛屽垯鍙栨秷鎵撳嵃"鈹?絎﹀彿
*/
for(int k=0;k<file.length;k++){
if(file[k].isDirectory())
lastDirectory = new String(file[k].getName());
}
if(file[i].getName().equals(lastDirectory)){
if(string.indexOf("鈹?) != -1){
string.delete(string.lastIndexOf("鈹?),string.lastIndexOf("鈹?)+1);
}
}
/*
* 鏍煎紡鍖栨墦鍗幫紝灝嗙鍙鋒渶鍚庣殑"鈹鈹"鍙樹負(fù)"鈹溾攢鈹"錛堝綋鏈鍚庣殑絎﹀彿涓嶄負(fù)"鈹傗攢鈹"鏃訛級
*/
if(!((string.lastIndexOf("鈹鈹")-1) == string.lastIndexOf("鈹傗攢鈹"))){
s = new StringBuffer(string.substring(0,string.lastIndexOf("鈹鈹")));
s.append("鈹溾攢鈹");
}else{
if(string.indexOf("鈹傗攢鈹")!=-1){
s = new StringBuffer(string.substring(0,string.lastIndexOf("鈹傗攢鈹")));
s.append("鈹溾攢鈹");
}
}
if(file[i].getName().equals(file[file.length-1].getName()))
if(s != null)
if(s.lastIndexOf("鈹?) != -1)
s.replace(s.lastIndexOf("鈹?),s.lastIndexOf("鈹?)+1,"鈹?);
/*
* 濡傛灉s涓嶄負(fù)絀猴紝鍒欏皢s浼犲叆鏂規(guī)硶replace涓繘琛屾牸寮忓寲
*/
if(s != null)
System.out.println(replace(s.toString()) + file[i].getName());
if(file[i].isDirectory()){
totalDirectory += 1;
/*
* 濡傛灉璇ユ枃浠跺す鐨勫瓙鐩綍涓嬭繕鏈変袱涓互涓婄殑鏂囦歡鍜屾枃浠跺す錛屽垯鎵撳嵃涓涓?鈹?絎﹀彿錛屽茍鏍囪bool涓簍rue
*/
String pathstring = file[i].getAbsolutePath();
File current = new File(pathstring); //鍙栧緱褰撳墠璺緞鐨勬枃浠?BR> File[] fp = current.listFiles();
if(fp.length >1){
bool = true;
}
if(bool)
string.append("鈹?);
searchFile(file[i],string.toString(),bool);
/*
* 濡傛灉bool宸茬粡琚爣璁拌繃錛屽垯灝嗕笂涓嬈$殑"鈹?絎﹀彿鍒犻櫎
*/
if(bool)
if(string.indexOf("鈹?) != -1)
string.delete(string.lastIndexOf("鈹?),string.length());
bool = false;
}
totalFile += 1;
}
}
public static void main(String args[])throws IOException{
String path = null;
if(args.length<1)
path =".";
else
path = args[0];
FileRead read = new FileRead();
File file = new File(path);
if(!file.exists()){
System.err.print("the path is error");
System.exit(1);
}
read.searchFile(file,"鈹?,false);
System.out.println("the file is :" + (totalFile-totalDirectory));
System.out.println("thd directory is : " + totalDirectory);
}
}
璇ョ▼搴忓瓨鍦ㄤ竴涓棶棰橈紝涔熷氨鏄綋jdk涓殑File綾繪棤娉曞垽鏂洰褰曚笅鐨勪竴浜涚洰褰曟槸鏂囦歡澶規(guī)垨鍒欐槸鏂囦歡鏃訛紵
浜厓妯″紡鍖呮嫭涓ょ鐘舵侊紝鍐呰暣鐘舵佸拰澶栬暣鐘舵併備粬鐨勭綾繪湁鍗曠函浜厓妯″紡鍜屽鍚堜韓鍏冩ā寮忥紝緇撴瀯鍥懼涓嬶細(xì)
鎴戜滑浠庣粨鏋勭鍙互鐪嬪嚭錛屽鍚堜韓鍏冩ā寮忔槸鐢卞崟綰韓鍏冩ā寮忓拰鍚堟垚妯″紡緇勫悎鑰屾垚鐨勩?/SPAN>
浜厓妯″紡鏈夊洓縐嶈鑹詫細(xì)鎶借薄浜厓瑙掕壊錛屽叿浣撲韓鍏冭鑹詫紝浜厓宸ュ巶瑙掕壊錛屽拰瀹㈡埛瑙掕壊銆備韓鍏冩ā寮忎腑鐨勪韓鍏冨伐鍘傝鑹插彲浠ラ氳繃鍗曚緥妯″紡鏉ュ疄鐜般?/SPAN>
浣跨敤鏉′歡錛?/SPAN>
浠栫殑鍚勪釜瑙掕壊鐨勪綔鐢ㄤ負(fù)錛氭娊璞¤鑹詫細(xì)緇欏嚭涓涓娊璞$殑鎺ュ彛錛屼互瑙勮寖鍑嗗鎺ユ敹闄勫姞璐d換鐨勫璞°?/SPAN>
鍏蜂綋瑙掕壊錛氬畾涔変竴涓皢瑕佹帴鏀墮檮鍔犺矗浠葷殑綾匯?/SPAN>
瑁呴グ瑙掕壊錛氭寔鏈変竴涓瀯浠跺璞$殑瀹炰緥錛屽茍瀹氫箟涓涓洦鎶借薄鎺ュ彛涓鑷寸殑鎺ュ彛銆?/SPAN>
鍏蜂綋瑁呴グ瑙掕壊錛氳礋璐g粰鏋勪歡瀵硅薄鈥滆創(chuàng)涓娾濋檮鍔犺矗浠匯?/SPAN>
瑁呴グ綾諱竴鑸湪浠ヤ笅鎯呭喌浣跨敤錛?/SPAN>
1銆?SPAN style="FONT: 7pt 'Times New Roman'">
闇瑕佹墿灞曚竴涓被鐨勫姛鑳斤紝鎴栫粰涓涓被澧炲姞闄勫姞璐d換銆?/SPAN>2銆?SPAN style="FONT: 7pt 'Times New Roman'">
闇瑕佸姩鎬佺殑緇欎竴涓璞″鍔犲姛鑳斤紝榪欎簺鍔熻兘鍙互鍐嶅姩鎬佺殑嫻嬮攢銆?/SPAN>3銆?SPAN style="FONT: 7pt 'Times New Roman'">
闇瑕佸鍔犵敱涓浜涘熀鏈殑鎺掑垪緇勫悎浜х敓闈炲父澶ч噺鐨勫姛鑳斤紝浠庤屼嬌緇ф壙鍏崇郴鍙樺緱涓嶇幇瀹炪?/SPAN>
浠栨湁寰堝鐗圭偣錛?/SPAN>
1銆?SPAN style="FONT: 7pt 'Times New Roman'">
2銆?SPAN style="FONT: 7pt 'Times New Roman'">
浠栧彲浠ラ氳繃浣跨敤涓嶅悓鐨勫叿浣撲慨楗扮被浠ュ強(qiáng)榪欎簺瑁呴グ綾葷殑鎺掍緥緇勫悎錛岃璁″彲浠ュ垱閫犳洿澶氫笉鍚岃涓虹殑緇勫悎銆?/SPAN>3銆?SPAN style="FONT: 7pt 'Times New Roman'">
浠栬櫧鐒舵瘮緇ф壙鎬ц鐏墊椿錛岃繖鎰忓懗鐫浠栨瘮緇ф壙鏇村鏄撳嚭閿欍?/SPAN>緙虹偣錛氱敱浜庝嬌鐢ㄨ楗版ā寮忓彲浠ユ瘮浣跨敤緇ф壙鍏崇郴闇瑕佽緝?yōu)畱鏁扮洰鐨劸c伙紝浣嗘槸鍦ㄥ彟涓鏂歸潰錛屼嬌鐢ㄨ楗版ā寮忎細(xì)浜х敓姣斾嬌鐢ㄧ戶鎵挎柟寮忔洿澶氱殑瀵硅薄銆傝繖鍦ㄤ嬌鐢ㄦ椂榪涜閿欒鏌ヨ鍙樺緱鏇村洶闅句簡錛岀壒鍒槸榪欎簺瀵硅薄鐪嬩笂鍘婚兘寰堝儚銆?/SPAN>
class BookName{
String name;
int number;
}
abstract class Note{
BookName name = new BookName();
abstract public void setName(String value);
abstract public int getNumber();
abstract public void setNumber(int value);
abstract public String getName();
}
class StudentNote extends Note implements Cloneable{
BookName name = new BookName();
int isbn;
public void setName(String value){
name.name = value;
}
public void setNumber(int i){
name.number = i;
}
public int getNumber(){
return name.number;
}
public String getName(){
return name.name;
}
public Object clone() throws CloneNotSupportedException{
StudentNote st = new StudentNote();
st = (StudentNote)super.clone();
st.name = new BookName();
st.name.name = name.name;
st.name.number = name.number;
return st;
}
public void setIsbn(int i){
isbn = i;
}
public int getIsbn(){return isbn;}
}
class Manager{
private Vector v = new Vector();
public void add(Note note){
v.addElement(note);
}
public Note get(int i){
return (Note)v.get(i);
}
public int size(){
return v.size();
}
}
class Client{
private StudentNote student;
private static Manager client = new Manager();
public void register()throws CloneNotSupportedException{
student = new StudentNote();
StudentNote st = (StudentNote)student.clone();
client.add(st);
}
public static Manager getInstance(){
return client;
}
}
class test{
public static void main(String[] args)throws CloneNotSupportedException {
Client c = new Client();
c.register();
c.register();
Manager manager = c.getInstance();
StudentNote student = (StudentNote)manager.get(0);
StudentNote st = (StudentNote)manager.get(1);
student.setName("sky");
student.setNumber(101);
student.setIsbn(10001);
st.setName("fly");
st.setNumber(102);
st.setIsbn(10002);
System.out.println(student.getName() + "\t" + student.getNumber() + "\t" + student.getIsbn());
System.out.println(st.getName() + "\t" + st.getNumber() + "\t" + st.getIsbn());
}
}
瑁呴グ妯″紡鈥?/SPAN>Decorator
瑁呴グ妯″紡鏈夊悕鍖呰妯″紡錛岃楗版ā寮忎互瀵瑰鎴風(fēng)閫忔槑鐨勬柟寮忔潵鎵╁睍瀵硅薄鐨勫姛鑳斤紝鏄戶鎵垮叧緋葷殑涓涓浛浠g殑鏂規(guī)銆?/SPAN>
瀹㈡埛绔茍涓嶄細(xì)瑙夊緱瑁呴グ妯″紡鍦ㄨ楗板墠鍜岃楗板悗鏈変粈涔堜笉鍚岋紝浠栧彲浠ュ湪涓嶄嬌鐢ㄦ洿澶氱殑瀛愮被鐨勬儏鍐典笅鏉ヨ繘琛屽瀵硅薄鐨勫姛鑳藉姞浠ユ墿灞曘傜粨鏋勫浘濡備笅錛?BR>
瑁呴グ妯″紡鍘熸潵琚楗扮被鐨勪竴涓瓙綾葷殑瀹炰緥錛屾妸瀹㈡埛绔殑璋冪敤濮旀淳鍒拌瑁呴グ綾匯備粬鏈変互涓嬬粍鎴愶細(xì)鎶借薄鏋勪歡錛屽叿浣撴瀯浠訛紝瑁呴グ瑙掕壊錛屽叿浣撹楗幫紱浠栦竴鑸湪涓嬮潰榪欎簺鎯呭喌浣跨敤浠栨渶濂斤細(xì)
1銆?SPAN style="FONT: 7pt 'Times New Roman'">
闇瑕佹墿灞曚竴涓被鐨勫姛鑳斤紝鎴栫粰涓涓被澧炲姞闄勫姞璐d換銆?/SPAN>2銆?SPAN style="FONT: 7pt 'Times New Roman'">
闇瑕佸姩鎬佺殑緇欎竴涓璞″鍔犲姛鑳斤紝榪欎簺鍔熻兘鍙兘琚姩鎬佺殑鎾ゆ秷銆?/SPAN>3銆?SPAN style="FONT: 7pt 'Times New Roman'">
闇瑕佸鍔犱竴浜涘熀鏈姛鑳界殑鎺掍緥緇勫悎鑰屼駭鐢熺殑闈炲父澶ч噺鐨勫姛鑳斤紝浠庤屼嬌緇ф壙鍏崇郴鍙樺緱涓嶇幇瀹炪?/SPAN>浼樼偣錛氫粬鍙互鐏墊椿鐨勫鍔犱竴涓被鎴栧璞$殑鍔熻兘錛屼篃鍙互閫氳繃涓嶅悓鐨勫叿浣撹楗扮被鐨勬帓渚嬬粍鍚堣璁″嚭鏇村姞澶嶆潅鐨勶紝鍔熻兘鏇村己鐨勭被銆?/SPAN>