———————————— C#:生成(創(chuàng)建)文本文件 —————————————
很重要的一個頭文件:using System.IO;
很重要的類:StreamWriter、FileStream、File
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
法一:作為一個初級自學(xué)菜鳥(分不清StreamWriter和FileStream ,也搞不懂他們怎么用),我最常用的方法
必要控件:一個Button + 一個 TextBox
按鈕動作:
private void button1_Click(object sender, EventArgs e)
{
string FilePath = Application.StartupPath + "\\test2.txt";
for (int i = 0; i < 5; i++)
{
this.textBox1.AppendText("在控件中一行一行添加文本,最后統(tǒng)一保存\r\n");
}
File.WriteAllLines(FilePath, this.textBox1.Lines);
//法二:File.WriteAllText(FilePath, this.textBox1.Text);
}
其中:Application.StartupPath 就是當(dāng)前程序的調(diào)試路徑
private void button1_Click(object sender, EventArgs e)
{
string FilePath = Application.StartupPath + "\\test2.txt";
File.AppendAllText(FilePath, "一行一行加\r\n");
}
這個方法少用了一個控件,代碼量少了,但是每執(zhí)行一次都需要進(jìn)行一次文件操作,本人菜鳥不知道是不是會影響運(yùn)行速度,此法保留。(小程序代碼量小,文件小或許可以用一用)
法三:StreamWriter 類
必要控件:一個Button
按鈕動作:
private void button1_Click(object sender, EventArgs e)
{
StreamWriter sw = new StreamWriter(Application.StartupPath + "\\" + "test1.txt");
sw.Write("你好,哈哈哈哈!");
sw.Flush(); //刷新緩沖區(qū)
sw.Close();
}
這里,是用新的內(nèi)容覆蓋舊的內(nèi)容的方法。
flush() 是把緩沖區(qū)的數(shù)據(jù)強(qiáng)行輸出, 主要用在IO中,即清空緩沖區(qū)數(shù)據(jù),一般在讀寫流(stream)的時候,
數(shù)據(jù)是先被讀到了內(nèi)存中,再把數(shù)據(jù)寫到文件中,當(dāng)你數(shù)據(jù)讀完的時候不代表你的數(shù)據(jù)已經(jīng)寫完了,
因?yàn)檫€有一部分有可能會留在內(nèi)存這個緩沖區(qū)中。這時候如果你調(diào)用了close()方法關(guān)閉了讀寫流,
那么這部分?jǐn)?shù)據(jù)就會丟失,所以應(yīng)該在關(guān)閉讀寫流之前先flush()。
參考資料:https://blog.csdn.net/u012345283/article/details/84498615
法四:StreamWriter + FileStream
必要控件:一個Button
控件動作:
private void button1_Click(object sender, EventArgs e)
{
string FilePath = Application.StartupPath + "\\test3.txt"; //文件所存放的位置
FileStream fs = new FileStream(FilePath, FileMode.Append); //FileMode.Append:在下一行添加而不是覆蓋之前的內(nèi)容
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("一行一行添加文本");
sw.Close();
}
FileMode.Append:在下一行添加而不是覆蓋之前的內(nèi)容
最后:PS:(1)文件的格式也可以定義為其他格式,比如”test3.doc“,看自己需求
聯(lián)系客服