戦略モード(コールバック)

/ ** 
 * 
 * / 
com.zachary.io.utilのためのパッケージ変更、

インポートのjava.io.File; 
インポートにjava.io.IOException; 

/ ** 
 * @author Zachary.Zheng 
 * @version 1.0 
 * @date 2019年11月9日日
 * / 
publicクラスプロセスファイル{ 
	/ ** 
	 *定義のコールバック関数インタフェースを
	 呼び出すときに実現* 
	 * @author Zachary.Zhengは
	 * @version 1.0 
	 * @date 2019インディアン11越9日
	 * / 
	戦略で、パブリックインターフェイス{ 
		無効プロセス(ファイルファイル); 
	} 
	プライベート戦略戦略; 
	プライベート文字列EXT; 
	公共プロセスファイル(戦略戦略、ストリングEXT){ 
		スーパー(); 
		this.strategy =戦略。
		this.ext = EXT。
	} 
		}キャッチ(例外e){
	パブリックProcessFiles(){ 
		スーパー()。
	} 

	公共のボイド開始(文字列[] args)を{ 
		試み{ 
			場合(args.length == 0){ 
				processDirectoryTree(新しいファイル() ""); 
			}他{ 
				(文字列引数:引数)のために{ 
					ファイルfileArg =新しいファイル(引数)。
					IF(fileArg.isDirectory()){ 
						processDirectoryTree(fileArg)。
					}他{ 
						場合(!arg.endsWith( "" + EXT)){ 
							argに+ = "" + EXT。
						} 
						//执行回调函数
						strategy.process(新しいファイル(引数).getCanonicalFile()); 
					} 
				} 
			} 
			// TODO:ハンドル例外
		} 
	}
	公共のボイドprocessDirectoryTree(ファイルのルート)がスローにIOException { 
		のための(ファイルのファイル: "。* \\" Directory.walk(root.getAbsolutePath()、+ EXT)){ 
			//执行回调函数
			strategy.process(file.getCanonicalFile( )); 
		} 
	} 
	パブリック静的無効メイン(文字列[] args){ 
		新しいProcessFilesは(新しいProcessFiles.Strategy(){ 
			//回调函数
			公共ボイドプロセス(ファイルファイル){ 
				System.out.printlnは(ファイル); 
			} 
		}の"Java" ).start(引数);; 
	} 
} 
/ *出力:(サンプル) 
E:\ \ javaBaseLearn \\ \\のIOStreamワークスペース\\のjava-IO-ストリーム\\ SRC \\コム\\ザカリー\\ IO \\ utilの\\ DirList2.java 
E:\\ javaBaseLearn \\のIOStream \ワークスペース\\のjava-IO-ストリーム\\ SRC \\コム\\ザカリー\\ IO \\ utilの\\ Directory.java
E:\\ javaBaseLearn \\ \\のIOStreamワークスペース\\のjava-IO-ストリーム\\ SRC \\コム\\ザカリー\\ IO \\ utilの\\ DirList.java
E:\\ javaBaseLearn \\ \\のIOStreamワークスペース\\のjava-IO-ストリーム\\ SRC \\コム\\ザカリー\\ IO \\ utilの\\ DirList3.java 
E:\\ javaBaseLearn \\ \\のIOStreamワークスペース\ \ javaの-IO-ストリーム\\ SRC \\コム\\ザカリー\\ IO \\ utilの\\ PPrint.java 
E:\\ javaBaseLearn \\ \\のIOStreamワークスペース\\のjava-IO-ストリーム\\ SRC \\コム\\ \\ザカリーIO \\ utilの\\ ProcessFiles.java 
E:\\ javaBaseLearn \\ \\のIOStreamワークスペース\\のjava-IO-ストリーム\\ SRC \\コム\\ザカリー\\ IO \\ utilの\\ TreeInfo .java 
* ///:〜

  

おすすめ

転載: www.cnblogs.com/zhongli1/p/11828238.html