<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)

    搜索

    •  

    積分與排名

    • 積分 - 156615
    • 排名 - 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  回復  更多評論
      
    主站蜘蛛池模板: 一级毛片免费视频| 亚洲第一中文字幕| 日韩成人精品日本亚洲| 五月亭亭免费高清在线| 中文字幕亚洲精品资源网| 最近中文字幕完整版免费高清| 18禁无遮挡无码网站免费| 亚洲av无码不卡久久| 国内免费高清在线观看| 久久亚洲2019中文字幕| 精品一区二区三区免费视频| 成人au免费视频影院| 亚洲风情亚Aⅴ在线发布| 久久aⅴ免费观看| 久久精品国产亚洲AV高清热| 一级毛片在线完整免费观看| 国产亚洲人成A在线V网站| 国内精品免费在线观看| 免费夜色污私人影院在线观看| 一级毛片完整版免费播放一区| 亚洲精品乱码久久久久久中文字幕| 日本免费人成网ww555在线| 亚洲精品不卡视频| 暖暖免费高清日本一区二区三区| 免费看黄福利app导航看一下黄色录像| 巨波霸乳在线永久免费视频| 亚洲精品乱码久久久久久自慰| 99re免费99re在线视频手机版| 亚洲伊人成无码综合网| 噜噜综合亚洲AV中文无码| 亚洲最大激情中文字幕| 黄色免费网站在线看| 国产国产人免费人成免费视频| 亚洲一区二区三区免费在线观看| 国产免费久久精品久久久| 99久久免费国产精精品| 亚洲自国产拍揄拍| 亚洲中文字幕无码久久综合网| 91成人免费在线视频| 乱人伦中文视频在线观看免费| 亚洲人成网址在线观看|