コード例 #1
0
        /// <summary>
        /// 将一个对象存入文件
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="SaveDataObj"></param>
        /// <param name="SaveFileName"></param>
        /// <returns></returns>
        public static bool SaveObjToFile <T>(T SaveDataObj, string SaveFileName)
        {
            //加密,同时传换为字节数组。
            byte[] V_UserBytes    = System.Text.Encoding.ASCII.GetBytes(FunStringCrypt.EnCrypt(JsonConvert.SerializeObject(SaveDataObj), "GangHang"));
            string V_SaveFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, SaveFileName);
            //+ @"LocalSettings.ini";
            //创建一个文件流
            FileStream fs = new FileStream(V_SaveFileName, FileMode.Create, FileAccess.ReadWrite);

            //将byte数组写入文件中
            fs.Write(V_UserBytes, 0, V_UserBytes.Length);
            //所有流类型都要关闭流,否则会出现内存泄露问题
            fs.Close();
            return(true);
        }
コード例 #2
0
        /// <summary>
        ///  从文件中读取一个对象(列表)
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="ReadFromFileName"></param>
        /// <returns></returns>
        public static T ReadObjFromFile <T>(string ReadFromFileName) where T : new()
        {
            T      targetObj;
            string V_LocalFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ReadFromFileName);

            if (System.IO.File.Exists(V_LocalFile))
            {
                FileStream fs           = new FileStream(V_LocalFile, FileMode.Open);
                int        V_FileLength = int.Parse(fs.Length.ToString());
                byte[]     V_UserBytes  = new byte[V_FileLength];
                fs.Read(V_UserBytes, 0, V_FileLength);
                fs.Close();
                //JObject V_Jobj = (JObject)JsonConvert.DeserializeObject(System.Text.Encoding.Default.GetString(V_UserBytes), SettingsLocal);
                //解密并转换为指定类型的对象
                targetObj = JsonConvert.DeserializeObject <T>(FunStringCrypt.DeCrypt(System.Text.Encoding.ASCII.GetString(V_UserBytes), "GangHang"));
            }
            else
            {
                targetObj = new T();
            }
            return(targetObj);
        }