<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 117  文章 - 72  trackbacks - 0

    聲明:原創作品(標有[原]字樣)轉載時請注明出處,謝謝。

    常用鏈接

    常用設置
    常用軟件
    常用命令
     

    訂閱

    訂閱

    留言簿(7)

    隨筆分類(130)

    隨筆檔案(123)

    搜索

    •  

    積分與排名

    • 積分 - 155667
    • 排名 - 391

    最新評論

    [關鍵字]:java,design pattern,設計模式,《Java與模式》學習,decorator,裝飾模式,Unix
    [環境]:StarUML5.0 + JDK6
    [作者]:Winty (wintys@gmail.com)
    [正文]:

    package pattern.decorator.grep;

    import java.io.*;

    /**
     * 裝飾模式(Decorator Pattern):Grep
     *
     * Grep是UNIX中的命令,
     * 使用命令"grep BMW file",
     * 就可以在file中找出含有BMW的行,并顯示。
     *
     * @version 2009-6-6
     * @author Winty(wintys@gmail.com)
     */
    public class Grep{
        public static void main(String[] args)throws Exception{
            GrepView view = new GrepView();

            if(args.length < 2){
                view.println("Usage: java Grep targetString fileName");
                view.println("e.g.:java Grep BMW C:/sample.txt");
                System.exit(0);
            }
            
            GrepReader grep;

            FileReader file = new FileReader(args[1]);
            grep = new GrepReader(file , args[0] , view);
            grep.search();
        }
    }

    class GrepReader extends FilterReader{
        private LineNumberReader reader;
        private String target;
        private GrepView view;

        /**
         *@param in 在輸入流in中查找目標字符串
         *@param target 要查找的目標字符串
         *@param view 查找結果輸出
         */
        public GrepReader(Reader in , String target , GrepView view){
            super(in);
            reader = new LineNumberReader(in);
            this.target = target;
            this.view = view;
        }

        public void search()throws Exception{
            String line = null;
            while((line = reader.readLine())!=null){
                int index = -1;
                if((index = line.indexOf(target)) != -1){
                    String str;
                    str = "line" + reader.getLineNumber() + " column" + (index +1) +":" + line;
                    view.println(str);
                }
            }

            reader.close();
        }
    }

    class GrepView{
        private PrintStream out;

        public GrepView(){
            this.out = System.out;
        }

        public void println(String str){
            out.println(str);
        }
    }
    posted on 2009-06-07 22:42 天堂露珠 閱讀(999) 評論(2)  編輯  收藏 所屬分類: Pattern

    FeedBack:
    # re: [原]裝飾模式3-Grep 2009-06-07 23:22 subtitle
    good....  回復  更多評論
      
    # re: [原]裝飾模式3-Grep 2009-06-08 08:20 網絡小說
    ver ygood  回復  更多評論
      
    主站蜘蛛池模板: 亚洲第一网站免费视频| 暖暖日本免费中文字幕| 午夜一级免费视频| 亚洲人成网站色在线观看| 免费精品国偷自产在线在线 | 亚洲爆乳少妇无码激情| 成人毛片免费在线观看| 亚洲欧美黑人猛交群| 日韩a级毛片免费观看| 老司机午夜在线视频免费观| 免费人成视网站在线观看不卡| 特级毛片爽www免费版| 中文字幕亚洲一区二区va在线| 永久免费av无码入口国语片| 亚洲福利视频导航| 男女做羞羞的事视频免费观看无遮挡 | 精品一区二区三区免费毛片爱 | 亚洲成年人电影在线观看| 在线a免费观看最新网站| 亚洲日本国产综合高清| 免费又黄又硬又爽大片| 丝瓜app免费下载网址进入ios| 亚洲a在线视频视频| 一二三四在线播放免费观看中文版视频 | 亚洲熟妇无码爱v在线观看| 免费无码黄十八禁网站在线观看| 日本亚洲欧美色视频在线播放| 亚洲精品综合久久| 91久久精品国产免费一区| 亚洲成av人片天堂网无码】| 亚洲男人av香蕉爽爽爽爽| 免费一区二区三区| 亚洲AV无码一区二区三区久久精品| 亚洲伊人成无码综合网| 国产免费一区二区三区| 老司机福利在线免费观看| 亚洲欧洲免费视频| 又粗又硬又黄又爽的免费视频| 久久九九全国免费| 曰批免费视频播放在线看片二| 无码久久精品国产亚洲Av影片|