最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#讀取寫(xiě)入文件的3種方式示例代碼

 更新時(shí)間:2022年06月15日 10:42:55   作者:時(shí)間里的  
最近操作文件頻繁,所以這篇文章主要給大家介紹了關(guān)于C#讀取寫(xiě)入文件的3種方式,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

最新對(duì)文件的操作比較頻繁。這里記錄一下常用的幾種文件讀寫(xiě)的方式。

我這里使用窗體來(lái)做測(cè)試。

1:二進(jìn)制讀寫(xiě)

/// <summary>
        /// 二進(jìn)制寫(xiě)入文件
        /// </summary>
        private void button1_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveDlg = new SaveFileDialog();
            saveDlg.FileName = "File";
            saveDlg.Title = "保存數(shù)據(jù)";
            saveDlg.Filter = "File(*.txt)|*.txt";
            saveDlg.DefaultExt = "txt";
            saveDlg.AddExtension = true;
            //saveDlg.InitialDirectory = "D:AMC Results";
            if (saveDlg.ShowDialog() == DialogResult.OK)
            {
                Cursor = Cursors.WaitCursor;
                SaveDatafileWithNewVersion(saveDlg.FileName);
                Cursor = Cursors.Default;
            }
        }
  
        /// <summary>
        /// 二進(jìn)制保存文件
        /// </summary>
        public static void SaveDatafileWithNewVersion(String sFile)
        {
            //文件格式依次為:內(nèi)部版本號(hào),...
            Stream stream = File.Open(sFile, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(stream);
            bw.Write((Int16)1);//內(nèi)部版本號(hào),暫時(shí)用1,表示版本1,整型
            ///寫(xiě)入Config對(duì)象
            bw.Write("澤國(guó)江山入戰(zhàn)圖
");
            bw.Write("生民何計(jì)樂(lè)樵蘇
");
            bw.Write("憑君莫話封侯事
");
            bw.Write("一將功成萬(wàn)骨枯
");
            bw.Close();
            stream.Close();
        }
  
        /// <summary>
        /// 打開(kāi)文件
        /// </summary>
        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog openDlg = new OpenFileDialog();
            openDlg.Title = "File";
            openDlg.Filter = "File (*.txt)|*.txt";
  
            if (openDlg.ShowDialog() == DialogResult.OK)
            {
                BinaryReader br = new BinaryReader(new FileStream(openDlg.FileName,
                FileMode.Open));
                string str = "";
                int number = br.ReadInt16();
                str += br.ReadString();
                str += br.ReadString();
                str += br.ReadString();
                str += br.ReadString();
  
                richTextBox1.Text = str;
                br.Close();
            }
        }

2:泛型讀寫(xiě):

/// <summary>
        /// 泛型寫(xiě)入
        /// </summary>
        private void button3_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveDlg = new SaveFileDialog();
            saveDlg.FileName = "File";
            saveDlg.Title = "保存數(shù)據(jù)";
            saveDlg.Filter = "File(*.txt)|*.txt";
            saveDlg.DefaultExt = "txt";
            saveDlg.AddExtension = true;
            //saveDlg.InitialDirectory = "D:AMC Results";
            if (saveDlg.ShowDialog() == DialogResult.OK)
            {
                string str = "澤國(guó)江山入戰(zhàn)圖
生民何計(jì)樂(lè)樵蘇
憑君莫話封侯事
一將功成萬(wàn)骨枯
";
                BinarySerialize<string>(str, saveDlg.FileName);
            }
        }
  
        /// <summary>
        /// 寫(xiě)入文件
        /// </summary>
        /// <typeparam name="T">類(lèi)型</typeparam>
        /// <param name="obj">寫(xiě)入類(lèi)型</param>
        /// <param name="path">路徑</param>
        public static void BinarySerialize<T>(T obj, string path)
        {
  
            FileStream fileStream = new FileStream(path, FileMode.Create);
            BinaryFormatter b = new BinaryFormatter();
            try
            {
                b.Serialize(fileStream, obj);
                fileStream.Close();
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                if (fileStream != null)
                {
                    fileStream.Close();
                    fileStream.Dispose();
                }
            }
        }
  
        /// <summary>
        /// 泛型讀取
        /// </summary>
        private void button4_Click(object sender, EventArgs e)
        {
            OpenFileDialog openDlg = new OpenFileDialog();
            openDlg.Title = "File";
            openDlg.Filter = "File (*.txt)|*.txt";
  
            if (openDlg.ShowDialog() == DialogResult.OK)
            {
                string str = BinaryDeserialize<string>(openDlg.FileName);
                richTextBox2.Text = str;
            }
        }
  
        /// <summary>
        /// 讀取文件
        /// </summary>
        /// <typeparam name="T">類(lèi)型</typeparam>
        /// <param name="path">路徑</param>
        /// <returns></returns>
        public static T BinaryDeserialize<T>(string path)
        {
            FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
            BinaryFormatter b = new BinaryFormatter();    //SoapFormatter
            T rs;
            try
            {
                rs = (T)b.Deserialize(fileStream);
                return rs;
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                if (fileStream != null)
                {
                    fileStream.Close();
                    fileStream.Dispose();
                }
            }
            return default(T);
        }

3:XML讀寫(xiě):不是很穩(wěn)定

/// <summary>
        /// XML寫(xiě)入
        /// </summary>
        private void button5_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveDlg = new SaveFileDialog();
            saveDlg.FileName = "File";
            saveDlg.Title = "保存數(shù)據(jù)";
            saveDlg.Filter = "File(*.txt)|*.txt";
            saveDlg.DefaultExt = "txt";
            saveDlg.AddExtension = true;
            //saveDlg.InitialDirectory = "D:AMC Results";
            if (saveDlg.ShowDialog() == DialogResult.OK)
            {
                string str = "澤國(guó)江山入戰(zhàn)圖
生民何計(jì)樂(lè)樵蘇
憑君莫話封侯事
一將功成萬(wàn)骨枯
";
                SerializeToXml<string>(saveDlg.FileName, str);
            }
        }
  
        /// <summary>    
        /// XML序列化某一類(lèi)型到指定的文件
        /// /// </summary>  
        /// /// <param name="filePath">文件路徑</param>  
        /// /// <param name="obj">寫(xiě)入對(duì)象</param> 
        /// /// <param name="type"></param>  
        public static void SerializeToXml<T>(string filePath, T obj)
        {
            try
            {
                using (System.IO.StreamWriter writer = new System.IO.StreamWriter(filePath))
                {
                    System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(T));
                    xs.Serialize(writer, obj);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
  
        /// <summary>
        /// XML讀取
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button6_Click(object sender, EventArgs e)
        {
            OpenFileDialog openDlg = new OpenFileDialog();
            openDlg.Title = "File";
            openDlg.Filter = "File (*.txt)|*.txt";
  
            if (openDlg.ShowDialog() == DialogResult.OK)
            {
                string str = DeserializeFromXml<string>(openDlg.FileName);
                richTextBox3.Text = str;
            }
        }
  
        /// <summary>    
        /// 從某一XML文件反序列化到某一類(lèi)型  
        /// </summary>   
        /// <param name="filePath">待反序列化的XML文件名稱(chēng)</param>
        /// <param name="type">反序列化出的</param> 
        /// <returns></returns>   
        public static T DeserializeFromXml<T>(string filePath)
        {
            try
            {
                if (!System.IO.File.Exists(filePath))
                    throw new ArgumentNullException(filePath + " not Exists");
                using (System.IO.StreamReader reader = new System.IO.StreamReader(filePath))
                {
                    System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(T));
                    T ret = (T)xs.Deserialize(reader);
                    return ret;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return default(T);
            }
        }

最終效果:

總結(jié)

到此這篇關(guān)于C#讀取寫(xiě)入文件的3種方式的文章就介紹到這了,更多相關(guān)C#讀取寫(xiě)入文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#中的協(xié)變與逆變方式

    C#中的協(xié)變與逆變方式

    協(xié)變和逆變是C#中處理泛型類(lèi)型參數(shù)可變性的兩個(gè)重要概念,協(xié)變?cè)试S將派生類(lèi)型的泛型參數(shù)轉(zhuǎn)換為基類(lèi)型的泛型參數(shù),而逆變?cè)试S將基類(lèi)型的泛型參數(shù)轉(zhuǎn)換為派生類(lèi)型的泛型參數(shù),通過(guò)協(xié)變和逆變,可以提高代碼的靈活性和可重用性,但也需要注意類(lèi)型參數(shù)的限制和安全性
    2024-12-12
  • C#實(shí)現(xiàn)狀態(tài)欄提示信息功能的示例

    C#實(shí)現(xiàn)狀態(tài)欄提示信息功能的示例

    今天小編就為大家分享一篇C#實(shí)現(xiàn)狀態(tài)欄提示信息功能的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • 漢字轉(zhuǎn)拼音縮寫(xiě)示例代碼(Silverlight和.NET 將漢字轉(zhuǎn)換成為拼音)

    漢字轉(zhuǎn)拼音縮寫(xiě)示例代碼(Silverlight和.NET 將漢字轉(zhuǎn)換成為拼音)

    本篇文章主要介紹了漢字轉(zhuǎn)拼音縮寫(xiě)示例代碼(Silverlight和.NET 將漢字轉(zhuǎn)換成為拼音) 需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01
  • C#建立測(cè)試用例系統(tǒng)的示例代碼

    C#建立測(cè)試用例系統(tǒng)的示例代碼

    這篇文章主要介紹了C#建立測(cè)試用例系統(tǒng)的方法,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#讀寫(xiě)Config配置文件案例

    C#讀寫(xiě)Config配置文件案例

    這篇文章介紹了C#讀寫(xiě)Config配置文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#實(shí)現(xiàn)石頭剪刀布游戲

    C#實(shí)現(xiàn)石頭剪刀布游戲

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)石頭剪刀布游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 淺析C# 基礎(chǔ)語(yǔ)法的使用

    淺析C# 基礎(chǔ)語(yǔ)法的使用

    本篇文章對(duì)C#中基礎(chǔ)語(yǔ)法的使用。進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • c#和javascript函數(shù)相互調(diào)用示例分享

    c#和javascript函數(shù)相互調(diào)用示例分享

    在webBrowser使用過(guò)程中為了C#和JS通訊,webBrowser必須設(shè)置ObjectForScripting的屬性,它是一個(gè)object,這個(gè)object可以提供給webBrowser控件載入的網(wǎng)頁(yè)上的script訪問(wèn)
    2014-01-01
  • C# 利用IRawPixels接口遍歷柵格數(shù)據(jù)

    C# 利用IRawPixels接口遍歷柵格數(shù)據(jù)

    本文主要介紹了利用IRawPixels接口遍歷柵格數(shù)據(jù)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • C#委托現(xiàn)實(shí)示例分析

    C#委托現(xiàn)實(shí)示例分析

    這篇文章主要介紹了C#委托現(xiàn)實(shí),實(shí)例分析了C#委托的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

张家界市| 攀枝花市| 邵东县| 富阳市| 墨江| 花垣县| 楚雄市| 英超| 吴忠市| 涟水县| 即墨市| 西平县| 宁陵县| 长葛市| 石台县| 平湖市| 绥中县| 长春市| 梁平县| 宜丰县| 阜城县| 兴海县| 重庆市| 津市市| 灯塔市| 中西区| 鄄城县| 高尔夫| 新竹县| 盘锦市| 蒙山县| 依兰县| 绵竹市| 临沭县| 贵定县| 修水县| 白朗县| 土默特右旗| 招远市| 湟中县| 南皮县|