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

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

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

    隨筆 - 117  文章 - 72  trackbacks - 0

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

    常用鏈接

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

    訂閱

    訂閱

    留言簿(7)

    隨筆分類(130)

    隨筆檔案(123)

    搜索

    •  

    積分與排名

    • 積分 - 156642
    • 排名 - 390

    最新評論

    [關鍵字]:java,design pattern,設計模式,《Java與模式》學習,decorator,裝飾模式,Unix
    [環(huán)境]: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 天堂露珠 閱讀(1004) 評論(2)  編輯  收藏 所屬分類: Pattern

    FeedBack:
    # re: [原]裝飾模式3-Grep 2009-06-07 23:22 subtitle
    good....  回復  更多評論
      
    # re: [原]裝飾模式3-Grep 2009-06-08 08:20 網(wǎng)絡小說
    ver ygood  回復  更多評論
      
    主站蜘蛛池模板: 在线精品亚洲一区二区小说| 日本中文字幕免费看| aa级毛片毛片免费观看久| 永久中文字幕免费视频网站| 亚洲成电影在线观看青青| 青青草原精品国产亚洲av| 美女被免费网站91色| 亚洲综合最新无码专区| yy一级毛片免费视频| 精品福利一区二区三区免费视频| 亚洲精品美女久久久久99| 免费无码又爽又刺激网站直播 | 免费无遮挡无码永久在线观看视频 | 精品国产亚洲男女在线线电影| 国产精品亚洲а∨天堂2021| 免费**毛片在线播放直播| 一级白嫩美女毛片免费| 亚洲精品无码久久久久去q| 男女作爱在线播放免费网站| 久久精品国产亚洲AV麻豆网站| 免费A级毛片无码A∨免费| 亚洲av乱码一区二区三区香蕉| 成人片黄网站A毛片免费| 亚洲av无码一区二区三区网站| 久久九九AV免费精品| 亚洲一区精品视频在线| 在线观看免费亚洲| 成人毛片100免费观看| 亚洲另类激情综合偷自拍| 我的小后妈韩剧在线看免费高清版 | 国产精品亚洲小说专区| 久久久久亚洲av成人无码电影| 久久精品免费电影| 色噜噜亚洲男人的天堂| 最近中文字幕2019高清免费| 亚洲成在人线电影天堂色| 国产成人精品免费直播| 免费无码一区二区三区蜜桃| 亚洲国产夜色在线观看| 亚洲精品A在线观看| **俄罗斯毛片免费|