/ ** * * / пакет com.zachary.io.util; импорт java.io.File; импорт java.io.IOException; / ** * @Author Zachary.Zheng * @Version 1,0 * @Date 2019 Нянь 11 Юэ 9 Ri * / общественный класс ProcessFiles { / ** * Определение интерфейса функции обратного вызова * Осознайте, когда вы звоните * @Author Zachary.Zheng * @Version 1,0 * @Date 2019 Нянь 11 Юэ 9 Ri * / открытый интерфейс Стратегия { недействительный процесс (файл File); } частная стратегия Стратегии; частная строка внутр; общественные ProcessFiles (стратегия Стратегии, String внутр) { супер(); this.strategy = стратегия; this.ext = внутр; } общественные ProcessFiles () { супер(); } общественного недействительными начала (String [] арг) { пытаться { если (args.length == 0) { processDirectoryTree (новый (File) ""); } Еще { для (String арг: арг) { Файл fileArg = новый файл (ARG); если (fileArg.isDirectory ()) { processDirectoryTree (fileArg); } Еще { если (! arg.endsWith ( "" + вн)) { Arg + = "" + Внутр; } // Функция обратного вызова strategy.process (новый файл (Arg) .getCanonicalFile ()); } } } } Задвижка (Исключение е) { // TODO: Ручка исключения } } общественного недействительный processDirectoryTree (корневой файл) бросает IOException { для (файл: ". * \\" Directory.walk (root.getAbsolutePath (), + вн)) { // Функция обратного вызова strategy.process (file.getCanonicalFile ()); } } государственной статической силы основных (String [] арг) { новые ProcessFiles (новый ProcessFiles.Strategy () { // Функция обратного вызова общественного недействительный процесс (файл File) { System.out.println (файл); } }, "Java"). Начать (арг) ;; } } / * Выход: (образец) E: \\ javaBaseLearn \\ IOStream \ WORKSPACE \\ ява-ю-поток \\ ЦСИ \\ ком \\ Захари \\ ю \\ Util \\ Directory.java E: \\ javaBaseLearn \\ IOStream \\ WORKSPACE \\ ява-ю-поток \\ ЦСИ \\ ком \\ Захари \\ ю \\ Util \\ DirList.java E: \\ javaBaseLearn \\ IOStream \\ WORKSPACE \\ ява-ю-поток \\ ЦСИ \\ ком \\ Захари \\ ю \\ Util \\ DirList2.java E: \\ javaBaseLearn \\ IOStream \\ WORKSPACE \\ ява-ю-поток \\ ЦСИ \\ ком \\ Захари \\ ю \\ Util \\ DirList3.java E: \\ javaBaseLearn \\ IOStream \\ WORKSPACE \\ ява-ю-поток \\ ЦСИ \\ ком \\ Захари \\ ю \\ Util \\ PPrint.java E: \\ javaBaseLearn \\ IOStream \\ WORKSPACE \\ ява-ю-поток \\ ЦСИ \\ ком \\ Захари \\ ю \\ Util \\ ProcessFiles.java E: \\ javaBaseLearn \\ IOStream \\ WORKSPACE \\ ява-ю-поток \\ ЦСИ \\ ком \\ Захари \\ ю \\ Util \\ TreeInfo.java * ///: ~