亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#讀取寫入文件的方式有哪些

發布時間:2022-06-15 11:46:10 來源:億速云 閱讀:142 作者:iii 欄目:開發技術

這篇“C#讀取寫入文件的方式有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“C#讀取寫入文件的方式有哪些”文章吧。

1:二進制讀寫

/// <summary>
        /// 二進制寫入文件
        /// </summary>
        private void button1_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveDlg = new SaveFileDialog();
            saveDlg.FileName = "File";
            saveDlg.Title = "保存數據";
            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>
        /// 二進制保存文件
        /// </summary>
        public static void SaveDatafileWithNewVersion(String sFile)
        {
            //文件格式依次為:內部版本號,...
            Stream stream = File.Open(sFile, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(stream);
            bw.Write((Int16)1);//內部版本號,暫時用1,表示版本1,整型
            ///寫入Config對象
            bw.Write("澤國江山入戰圖
");
            bw.Write("生民何計樂樵蘇
");
            bw.Write("憑君莫話封侯事
");
            bw.Write("一將功成萬骨枯
");
            bw.Close();
            stream.Close();
        }
  
        /// <summary>
        /// 打開文件
        /// </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:泛型讀寫:

/// <summary>
        /// 泛型寫入
        /// </summary>
        private void button3_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveDlg = new SaveFileDialog();
            saveDlg.FileName = "File";
            saveDlg.Title = "保存數據";
            saveDlg.Filter = "File(*.txt)|*.txt";
            saveDlg.DefaultExt = "txt";
            saveDlg.AddExtension = true;
            //saveDlg.InitialDirectory = "D:AMC Results";
            if (saveDlg.ShowDialog() == DialogResult.OK)
            {
                string str = "澤國江山入戰圖
生民何計樂樵蘇
憑君莫話封侯事
一將功成萬骨枯
";
                BinarySerialize<string>(str, saveDlg.FileName);
            }
        }
  
        /// <summary>
        /// 寫入文件
        /// </summary>
        /// <typeparam name="T">類型</typeparam>
        /// <param name="obj">寫入類型</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">類型</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讀寫:不是很穩定

/// <summary>
        /// XML寫入
        /// </summary>
        private void button5_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveDlg = new SaveFileDialog();
            saveDlg.FileName = "File";
            saveDlg.Title = "保存數據";
            saveDlg.Filter = "File(*.txt)|*.txt";
            saveDlg.DefaultExt = "txt";
            saveDlg.AddExtension = true;
            //saveDlg.InitialDirectory = "D:AMC Results";
            if (saveDlg.ShowDialog() == DialogResult.OK)
            {
                string str = "澤國江山入戰圖
生民何計樂樵蘇
憑君莫話封侯事
一將功成萬骨枯
";
                SerializeToXml<string>(saveDlg.FileName, str);
            }
        }
  
        /// <summary>    
        /// XML序列化某一類型到指定的文件
        /// /// </summary>  
        /// /// <param name="filePath">文件路徑</param>  
        /// /// <param name="obj">寫入對象</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文件反序列化到某一類型  
        /// </summary>   
        /// <param name="filePath">待反序列化的XML文件名稱</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);
            }
        }

最終效果:

C#讀取寫入文件的方式有哪些

以上就是關于“C#讀取寫入文件的方式有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德保县| 黄浦区| 新丰县| 浑源县| 梨树县| 武乡县| 安陆市| 辛集市| 郑州市| 谢通门县| 邵阳县| 花莲市| 长沙市| 甘孜| 金华市| 札达县| 阳高县| 新沂市| 上思县| 边坝县| 介休市| 财经| 乌拉特前旗| 黑山县| 密山市| 翁牛特旗| 通州市| 高邑县| 乐东| 岳池县| 万安县| 岢岚县| 丁青县| 神农架林区| 商水县| 孟津县| 高邮市| 昂仁县| 桦川县| 九龙县| 新闻|