zoukankan      html  css  js  c++  java
  • c#读properties文件

    @(编程)

    properties文件

    MONGO_URL = mongodb://172.16.20.3/srtc_dc
    CURRENT_VERSION = 2.0
    IS_AUTO_UPDATE = no
    REMOTE_UPDATE_FILE = http://192.168.1.121:8080/ClientBin.zip
    REMOTE_VERSION_FILE = http://192.168.1.121:8080/version
    PROGRAM_PATH = E:dcClientBinWims.Mili.DC.Client.SYS.exe
    

    源码

    using System;
    using System.Collections;
    using System.IO;
    
    namespace Wisdombud.Util
    {
        public class PropertyOper : System.Collections.Hashtable
        {
            private string fileName = "";
            private ArrayList list = new ArrayList();
            public ArrayList List
            {
                get { return list; }
                set { list = value; }
            }
            /// <summary>
            /// 构造函数
            /// </summary>
            /// <param name="fileName">要读写的properties文件名</param>
            public PropertyOper(string fileName)
            {
                this.fileName = fileName;
                this.Load(fileName);
            }
            /// <summary>
            /// 重写父类的方法
            /// </summary>
            /// <param name="key">键</param>
            /// <param name="value">值</param>
            public override void Add(object key, object value)
            {
                base.Add(key, value);
                list.Add(key);
    
            }
    
            public void Update(object key, object value)
            {
                base.Remove(key);
                list.Remove(key);
                this.Add(key, value);
    
            }
            public override ICollection Keys
            {
                get
                {
                    return list;
                }
            }
            /// <summary>
            /// 加载文件
            /// </summary>
            /// <param name="filePath">文件路径</param>
            private void Load(string filePath)
            {
                char[] convertBuf = new char[1024];
                int limit;
                int keyLen;
                int valueStart;
                char c;
                string bufLine = string.Empty;
                bool hasSep;
                bool precedingBackslash;
                using (StreamReader sr = new StreamReader(filePath))
                {
                    while (sr.Peek() >= 0)
                    {
                        bufLine = sr.ReadLine();
                        limit = bufLine.Length;
                        keyLen = 0;
                        valueStart = limit;
                        hasSep = false;
                        precedingBackslash = false;
                        if (bufLine.StartsWith("#"))
                            keyLen = bufLine.Length;
                        while (keyLen < limit)
                        {
                            c = bufLine[keyLen];
                            if ((c == '=' || c == ':') & !precedingBackslash)
                            {
                                valueStart = keyLen + 1;
                                hasSep = true;
                                break;
                            }
                            else if ((c == ' ' || c == '	' || c == 'f') & !precedingBackslash)
                            {
                                valueStart = keyLen + 1;
                                break;
                            }
                            if (c == '\')
                            {
                                precedingBackslash = !precedingBackslash;
                            }
                            else
                            {
                                precedingBackslash = false;
                            }
                            keyLen++;
                        }
                        while (valueStart < limit)
                        {
                            c = bufLine[valueStart];
                            if (c != ' ' && c != '	' && c != 'f')
                            {
                                if (!hasSep && (c == '=' || c == ':'))
                                {
                                    hasSep = true;
                                }
                                else
                                {
                                    break;
                                }
                            }
                            valueStart++;
                        }
                        string key = bufLine.Substring(0, keyLen);
                        string values = bufLine.Substring(valueStart, limit - valueStart);
                        if (key == "")
                            key += "#";
                        while (key.StartsWith("#") & this.Contains(key))
                        {
                            key += "#";
                        }
                        this.Add(key, values);
                    }
                }
            }
            /// <summary>
            /// 保存文件
            /// </summary>
            /// <param name="filePath">要保存的文件的路径</param>
            public void Save()
            {
                string filePath = this.fileName;
                if (File.Exists(filePath))
                {
                    File.Delete(filePath);
                }
                FileStream fileStream = File.Create(filePath);
                StreamWriter sw = new StreamWriter(fileStream);
                foreach (object item in list)
                {
                    String key = (String)item;
                    String val = (String)this[key];
                    if (key.StartsWith("#"))
                    {
                        if (val == "")
                        {
                            sw.WriteLine(key);
                        }
                        else
                        {
                            sw.WriteLine(val);
                        }
                    }
                    else
                    {
                        sw.WriteLine(key + "=" + val);
                    }
                }
                sw.Close();
                fileStream.Close();
            }
        }
    }
    
    

    应用

            public static void ReadConfig()
            {
                PropertyOper po = new PropertyOper("update.properties");
                GlobalValues.MONGO_URL = po["MONGO_URL"].ToString();
                GlobalValues.IS_AUTO_UPDATE = po["IS_AUTO_UPDATE"].ToString().ToLower().Equals("yes") ? true : false;
                GlobalValues.REMOTE_UPDATE_FILE = po["REMOTE_UPDATE_FILE"].ToString();
                GlobalValues.REMOTE_VERSION_FILE = po["REMOTE_VERSION_FILE"].ToString();
    
                GlobalValues.PROGRAM_PATH = po["PROGRAM_PATH"].ToString();
                FileInfo fi = new FileInfo(GlobalValues.PROGRAM_PATH);
                GlobalValues.PROGRAM_FOLDER = fi.Directory.FullName;
                GlobalValues.PROGRAM_NAME = fi.Name.Replace(".exe", "");
                GlobalValues.CURRETN_VERSION = po["CURRENT_VERSION"].ToString();
                GetIP();
                DaoFactory.Init();
            }
    
  • 相关阅读:
    GAN阶段性小结(损失函数、收敛性分析、训练技巧、应用“高分辨率、domain2domain”、研究方向)
    MMD :maximum mean discrepancy
    Chinese-BERT-wwm
    VGG16学习笔记
    jupyter notebook使用技巧--命令行模式以及在Markdown模式使用的操作(4)
    不同领域公开数据集下载
    数据挖掘竞赛,算法刷题网址汇总
    在keras下实现多个模型的融合
    问题集合
    开源测试数据集合
  • 原文地址:https://www.cnblogs.com/wardensky/p/5331851.html
Copyright © 2011-2022 走看看