WPF 中對文件操作方式JSON文件,基於C#

這兩天開了博客,覺得有必要寫點什麼東西充實一下,一來很多資料都不在電腦,二來也是爲以後工作方便寫一下記錄。
這是之前兼職寫的一個液壓機控制軟件中的文件保存操作,採用json語言保存數據,特別方便,包括單個類型變量、數組等的保存和讀取。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WpfApplication1
{
    class Syscfg
    {
        public int IsSaved = 1;
        public double intpama = 1.2;
        public double doublepama = 2.3;
        public double[] buf = { 1, 2, 3 };
        //public  double[] doublebuf = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
        private Syscfg()
        {
        }
        public static Syscfg config = new Syscfg();
    }
}

下面是對文件操作的一些方式,包括數據文件讀取:

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Globalization;
using System.Collections.ObjectModel;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

namespace WpfApplication1
{
    /// <summary>
    /// MainWindow.xaml 的交互邏輯
    /// </summary>
    public partial class MainWindow : Window
    {

        public MainWindow()
        {
            InitializeComponent();

            try
            {
                StreamReader sr1 = new StreamReader("syscfg.ini", Encoding.Default);
                string jsons1 = sr1.ReadToEnd();
                Syscfg tmp_cfg1 = JsonConvert.DeserializeObject<Syscfg>(jsons1);
                sr1.Close();
                tmp_cfg1.IsSaved = Syscfg.config.IsSaved;
            }
            catch
            {
                using (StreamWriter sw = new StreamWriter("syscfg.ini", false))
                {
                    string json_out = JsonConvert.SerializeObject(Syscfg.config);
                    sw.Write(json_out);
                    sw.Close();
                }
            }

            StreamReader sr = new StreamReader("syscfg.ini", Encoding.Default);
            string jsons = sr.ReadToEnd();
            Syscfg tmp_cfg = JsonConvert.DeserializeObject<Syscfg>(jsons);

            sr.Close();
            tmp_cfg.intpama = 222;
            tmp_cfg.doublepama = 333;
            tmp_cfg.buf[0] = 1.1;
            tmp_cfg.buf[1] = 2.2;
            tmp_cfg.buf[2] = 3.3;
            using (StreamWriter sw = new StreamWriter("syscfg.ini", false))
            {
                string json_out = JsonConvert.SerializeObject(tmp_cfg);
                sw.Write(json_out);
                sw.Close();
            }
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章