您好,登錄后才能下訂單哦!
這篇“C#讀取寫入文件的方式有哪些”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“C#讀取寫入文件的方式有哪些”文章吧。
/// <summary> /// 二進(jìn)制寫入文件 /// </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,整型 ///寫入Config對(duì)象 bw.Write("澤國江山入戰(zhàn)圖 "); bw.Write("生民何計(jì)樂樵蘇 "); 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(); } }
/// <summary> /// 泛型寫入 /// </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 = "澤國江山入戰(zhàn)圖 生民何計(jì)樂樵蘇 憑君莫話封侯事 一將功成萬骨枯 "; 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); }
/// <summary> /// XML寫入 /// </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 = "澤國江山入戰(zhàn)圖 生民何計(jì)樂樵蘇 憑君莫話封侯事 一將功成萬骨枯 "; SerializeToXml<string>(saveDlg.FileName, str); } } /// <summary> /// XML序列化某一類型到指定的文件 /// /// </summary> /// /// <param name="filePath">文件路徑</param> /// /// <param name="obj">寫入對(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文件反序列化到某一類型 /// </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); } }
以上就是關(guān)于“C#讀取寫入文件的方式有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。