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

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

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

    rochoc

    關于java、cobol、zos

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      6 Posts :: 1 Stories :: 21 Comments :: 0 Trackbacks
    CS結構軟件自動升級實現(三)

    Config.java處理配置文件:
      1/********************************************************************
      2 * 項目名稱                :rochoc<p>
      3 * 包名稱                  :com.rochoc.autoupdate<p>
      4 * 文件名稱                :Config.java<p>
      5 * 編寫者                 :kfzx-luoc<p>
      6 * 編寫日期                :2008-12-22<p>
      7 * 程序功能(類)描述    :<p>
      8 * 用于更新的配置文件讀取對像
      9 * 程序變更日期            :
     10 * 變更作者                :
     11 * 變更說明                :
     12********************************************************************/

     13package com.rochoc.autoupdate;
     14
     15import java.io.File;
     16import java.text.SimpleDateFormat;
     17import java.util.Date;
     18import java.util.List;
     19
     20import org.dom4j.Document;
     21import org.dom4j.Element;
     22import org.dom4j.io.SAXReader;
     23
     24
     25/**
     26 * @author kfzx-luoc
     27 *
     28 * TODO To change the template for this generated type comment go to
     29 * Window - Preferences - Java - Code Style - Code Templates
     30 */

     31public class Config
     32{
     33    public static String cfgFile = ".\\config\\autoupdate.xml";
     34    private static Config config = null;
     35    /** xml的document*/
     36    private Document doc = null;
     37    public static Config getInstance()
     38    {
     39        if(config==null)
     40        {
     41            config = new Config();
     42        }

     43        return config;
     44    }

     45    
     46    private Config()
     47    {
     48        try
     49        {
     50           SAXReader reader = new SAXReader();
     51           doc = reader.read(cfgFile);
     52        }
    catch(Exception e)
     53        {
     54            e.printStackTrace();
     55        }

     56    }

     57    public void refresh()
     58    {
     59        config = new Config();
     60    }

     61    public String getVerstion()
     62    {
     63        if(config==null)
     64        {
     65            return "";
     66        }

     67        List lst = doc.selectNodes("Info/Version");
     68        Element el = (Element)lst.get(0);
     69        return el.getText();
     70    }

     71    public String getServerIp()
     72    {
     73        if(config==null)
     74        {
     75            return "";
     76        }

     77        List lst = doc.selectNodes("Info/UpdateServer/Ip");
     78        Element el = (Element)lst.get(0);
     79        return el.getText();
     80    }

     81    public UpdFile [] getFiles()
     82    {
     83        if(config==null)
     84        {
     85            return null;
     86        }

     87        List file = doc.selectNodes("Info/Files");
     88        List lst = ((Element)file.get(0)).elements();
     89        if(lst.size()==0)
     90        {
     91            return null;
     92        }

     93        UpdFile files[] = new UpdFile[lst.size()];
     94        for(int i=0;i<lst.size();i++)
     95        {
     96            Element el = (Element)lst.get(i);
     97            List childs = el.elements();
     98            Element name = (Element)childs.get(0);//Name
     99            Element path = (Element)childs.get(1);//Path
    100            Element ver = (Element)childs.get(2);//Version
    101            files[i] = new UpdFile(name.getText());
    102            if("File".equals(el.getName()))
    103            {
    104               files[i].setType(0);//文件
    105            }
    else
    106            {
    107                files[i].setType(1);//目錄
    108            }

    109            files[i].setPath(path.getText());
    110            files[i].setVersion(ver.getText());
    111        }

    112        return files;
    113    }

    114    public String getServerPort()
    115    {
    116        if(config==null)
    117        {
    118            return "";
    119        }

    120        List lst = doc.selectNodes("Info/UpdateServer/Port");
    121        Element el = (Element)lst.get(0);
    122        return el.getText();
    123    }

    124    public static void print(String msg)
    125    {
    126        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss->>" );
    127        String str = sdf.format( new Date());
    128        System.out.println(str+msg);
    129    }

    130    public static void main(String args[])
    131    {
    132        Config cfg = Config.getInstance();        
    133        UpdFile files[] = cfg.getFiles();
    134        for(int i=0;i<files.length;i++)
    135        {
    136            System.out.println(files[i]);
    137        }

    138        Config.print("test");
    139    }

    140    /**
    141     * 格式化路徑,增加其尾部的目錄分隔符
    142     *
    143     * @param p 要格式化的目錄字符串
    144     */

    145    public static String formatPath(String p)
    146    {
    147        if (!p.endsWith(File.separator))
    148            return (p + File.separator);
    149        return p;
    150    }

    151
    152    /**
    153     * 格式化路徑,去除其尾部的目錄分隔符
    154     *
    155     * @param p 要格式化的目錄字符串
    156     */

    157    public static String unformatPath(String p)
    158    {
    159        if (p.endsWith(File.separator))
    160            return (p.substring(0, p.length()-1));
    161        return p;
    162    }

    163    public static byte[] getCmd(String cmd)
    164    {
    165        //第一位用于標識是命令,后面8位為命令名
    166        byte cmdb [] = new byte[9];
    167        cmdb[0= AUPD.CMD_DATA_SECT;
    168        byte [] tmp = cmd.getBytes();
    169        if(tmp.length!=8)
    170        {
    171            Config.print("命令有誤:"+cmd+"<<");
    172            return null;
    173        }

    174        for(int i=0;i<8;i++)
    175        {
    176            cmdb[i+1= tmp[i];
    177        }

    178        return cmdb;
    179    }

    180    public static String parseCmd(byte cmd[])
    181    {
    182        return new String(cmd,0,8);
    183    }

    184    public static byte [] getLen(int len)
    185    {
    186        String slen = String.valueOf(len);
    187        while(slen.length()<4)
    188        {
    189            slen = "0"+slen;
    190        }

    191        return slen.getBytes();
    192    }

    193    public static void copyArray(byte objary[], byte souary[], int o_begin,
    194            int s_begin, int len)
    195    {
    196        for (int i = 0; i < len; i++)
    197        {
    198            objary[o_begin + i] = souary[s_begin + i];
    199        }

    200    }

    201}

    UpdFile.java:這個類本來是想作為對象直接在服務端和客戶端之間傳遞的,但后來沒有采用,因此在本實現中用處不大

     

      1/********************************************************************
      2 * 項目名稱                :rochoc<p>
      3 * 包名稱                  :com.rochoc.autoupdate<p>
      4 * 文件名稱                :UpdFile.java<p>
      5 * 編寫者                 :kfzx-luoc<p>
      6 * 編寫日期                :2008-12-23<p>
      7 * 程序功能(類)描述    :<p>
      8 * 版本文件對像
      9 * 程序變更日期            :
     10 * 變更作者                :
     11 * 變更說明                :
     12********************************************************************/

     13package com.rochoc.autoupdate;
     14
     15import java.io.Serializable;
     16
     17/**
     18 * @author kfzx-luoc
     19 *
     20 * TODO To change the template for this generated type comment go to
     21 * Window - Preferences - Java - Code Style - Code Templates
     22 */

     23public class UpdFile implements Serializable
     24{
     25    private String name = "";//名稱
     26    private String path = "";//路徑
     27    private int type = 0;//類型 0.文件 1.目錄
     28    private String version = "";//版本號
     29    
     30    public UpdFile()
     31    {
     32        super();
     33    }

     34    public UpdFile(String name)
     35    {
     36        this();
     37        this.name = name;
     38    }

     39    public UpdFile(String name,String path,int type,String version)
     40    {
     41        this(name);
     42        this.path = path;
     43        this.type = type;
     44        this.version = version;
     45    }

     46    /**
     47     * @return Returns the name.
     48     */

     49    public String getName()
     50    {
     51        return name;
     52    }

     53    /**
     54     * @param name The name to set.
     55     */

     56    public void setName(String name)
     57    {
     58        this.name = name;
     59    }

     60    /**
     61     * @return Returns the path.
     62     */

     63    public String getPath()
     64    {
     65        return path;
     66    }

     67    /**
     68     * @param path The path to set.
     69     */

     70    public void setPath(String path)
     71    {
     72        this.path = path;
     73    }

     74    /**
     75     * @return Returns the type.
     76     */

     77    public int getType()
     78    {
     79        return type;
     80    }

     81    /**
     82     * @param type The type to set.
     83     */

     84    public void setType(int type)
     85    {
     86        this.type = type;
     87    }

     88    /**
     89     * @return Returns the version.
     90     */

     91    public String getVersion()
     92    {
     93        return version;
     94    }

     95    /**
     96     * @param version The version to set.
     97     */

     98    public void setVersion(String version)
     99    {
    100        this.version = version;
    101    }

    102    public String toString()
    103    {
    104        return "Name:"+getName()+",Path:"+getPath()
    105        +",Type:"+getType()+",Version:"+getVersion();
    106    }

    107}

    《CS結構軟件自動升級實現》已經全部寫完,這是本人原創,如果需要轉貼請注明出處,目前我也只發布到bolgjava上,謝謝。
    posted on 2009-01-09 21:18 rochoc 閱讀(2032) 評論(2)  編輯  收藏

    Feedback

    # re: CS結構軟件自動升級實現(四) 2009-01-09 23:39 yz
    支持原創,多寫  回復  更多評論
      

    # re: CS結構軟件自動升級實現(四) 2009-01-10 09:41 日月雨林@gmail.com
    強烈支持原創! 你的文章讓我學到了好多的東西!雖然還沒有看完,先收藏了!
    謝謝你!  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久九九兔免费精品6| 国产免费一区二区三区免费视频 | 国产午夜免费高清久久影院| 四虎影视永久免费观看地址| 自拍偷自拍亚洲精品播放| 国产精品免费视频一区| 国产精品亚洲综合网站| 亚洲国产黄在线观看| 久久久精品国产亚洲成人满18免费网站| 亚洲av无码不卡私人影院| 一级毛片视频免费| 亚洲熟女少妇一区二区| 国产成人AV免费观看| 久久综合亚洲色HEZYO社区| 国产精品怡红院永久免费| 亚洲一区二区无码偷拍| 国产在线不卡免费播放| 四虎国产精品成人免费久久| 亚洲中文字幕第一页在线| 免费国产成人α片| 激情亚洲一区国产精品| 国产精品久久久久影院免费| 4hu四虎免费影院www| 久久亚洲精品无码| 久久久久国产精品免费免费搜索| 亚洲av无码专区在线电影| 久久影视国产亚洲| 中文字幕免费在线看线人| 亚洲AV无码精品国产成人| 亚洲无线码一区二区三区| 国产精品69白浆在线观看免费| 自拍偷自拍亚洲精品偷一| 亚洲国产一成人久久精品| 免费大片黄在线观看yw| 四虎影视久久久免费观看| 免费女人高潮流视频在线观看 | 亚洲人成影院在线无码按摩店| 中文字幕免费在线观看| 老司机福利在线免费观看| 亚洲国产精品久久久久婷婷老年| 午夜神器成在线人成在线人免费|