C#寫文件

 C# 文件處理操作必須先導入命名空間:using System. IO ;

//實現背景:一個文本框、一個按鈕、VS2005

方式一:用FileStream

//實例化一個保存文件對話框
            SaveFileDialog sf = new SaveFileDialog();
            //設置文件保存類型
            sf.Filter = "txt文件|*.txt|所有文件|*.*";
            //如果用戶沒有輸入擴展名,自動追加後綴
            sf.AddExtension = true;
            //設置標題
            sf.Title = "寫文件 ";
            //如果用戶點擊了保存按鈕
            if(sf.ShowDialog()==DialogResult.OK)
            {
                //實例化一個文件流--->與寫入文件相關聯
                FileStream fs = new FileStream(sf.FileName,FileMode.Create);
                //獲得字節 數組
                byte [] data =new UTF8Encoding().GetBytes(this.textBox1.Text);
                //開始寫入
                fs.Write(data,0,data.Length);
                //清空緩衝區、關閉流
                fs.Flush();
                fs.Close();

            }

方式二:用StreamWriter

//實例化一個保存文件對話框
            SaveFileDialog sf = new SaveFileDialog();
            //設置文件保存類型
            sf.Filter = "txt文件|*.txt|所有文件|*.*";
            //如果用戶沒有輸入擴展名,自動追加後綴
            sf.AddExtension = true;
            //設置標題
            sf.Title = "寫文件 ";
            //如果用戶點擊了保存按鈕
            if (sf.ShowDialog() == DialogResult.OK)
            {
                //實例化一個文件流--->與寫入文件相關聯
                FileStream fs = new FileStream(sf.FileName, FileMode.Create);
                //實例化一個StreamWriter-->與fs相關聯
                StreamWriter sw = new StreamWriter(fs);
                //開始寫入
                sw.Write(this.textBox1.Text);
                //清空緩衝區
                sw.Flush();
                //關閉流
                sw.Close();
                fs.Close();
            }

方式三:用BinaryWriter

//實例化一個保存文件對話框
            SaveFileDialog sf = new SaveFileDialog();
            //設置文件保存類型
            sf.Filter = "txt文件|*.txt|所有文件|*.*";
            //如果用戶沒有輸入擴展名,自動追加後綴
            sf.AddExtension = true;
            //設置標題
            sf.Title = "寫文件 ";
            //如果用戶點擊了保存按鈕
            if (sf.ShowDialog() == DialogResult.OK)
            {
                //實例化一個文件流--->與寫入文件相關聯
                FileStream fs = new FileStream(sf.FileName, FileMode.Create);
                //實例化BinaryWriter
                BinaryWriter bw = new BinaryWriter(fs);
                bw.Write(this.textBox1.Text);
                //清空緩衝區
                bw.Flush();
                //關閉流
                bw.Close();
                fs.Close();
            }

C# 緩存流示例------>用緩存流複製文件

C# 文件處理操作必須先導入命名空間:using System.IO ;

背景:使用VS2005、一個按鈕、一個窗體、C# 緩存流、把D:/KuGoo/愛得太多.wma複製到D:/並更名爲love.wma,即:D:/love.wma

在按鈕的Click事件中添加如下代碼:

private void button1_Click(object sender, EventArgs e)
        {
            //創建兩個文件流 一個是源文件相關,另一個是要寫入的文件
            FileStream fs = new FileStream(@"D:/KuGoo/愛得太多.wma",FileMode.Open);
            FileStream fs2 = new FileStream(@"D:/love.wma",FileMode.Create);
            //創建一個字節數組 ,作爲兩者之間的媒介
            //好比兩個人拿蘋果,這個字節數組 就好比一個籃子,一個人作死的把蘋果送到籃子裏面,
            //而我就可以作死得拿蘋果,通過這個媒介我們互不干擾,
            //不需要互相等待【她往籃子裏面放了蘋果我纔可以去拿】,提高了效率
            byte [] data = new byte [1024];
            //創建兩個緩衝流,與兩個文件流相關聯
            BufferedStream bs = new BufferedStream(fs);
            BufferedStream bs2= new BufferedStream(fs2);
            //fs作死的讀,fs2作死的寫,直到fs沒有字節可讀fs2就不寫了
           //好比,一個人作死的往籃子裏面丟蘋果,另一個人作死得往籃子裏面拿蘋果,直到籃子裏面沒有蘋果拿了爲止
            //即-->那個人沒有蘋果往籃子裏面放了
            while(fs.Read(data,0,data.Length)>0)
            {
                fs2.Write(data,0,data.Length);
                fs2.Flush();
            }
            //關閉流,好比兩個人累了,都要休息 呵呵o(∩_∩)o...
            fs.Close();
            fs2.Close();
        }

 

C# 內存流示例----->用內存流來讀取圖片
C# 文件處理操作必須先導入命名空間:using System.IO ;

背景:一個窗體、一個pictureBox、一個lable[沒有選擇圖片,lable的text爲"圖片未選擇"],在pictureBox1的Click事件中添加如下代碼:

private void pictureBox1_Click(object sender, EventArgs e)
        {
            //實例化一個打開文件對話框
            OpenFileDialog op = new OpenFileDialog();
            //設置文件的類型
            op.Filter = "JPG圖片|*.jpg|GIF圖片|*.gif";
            //如果用戶點擊了打開按鈕、選擇了正確的圖片路徑則進行如下操作:
            if(op.ShowDialog()==DialogResult.OK)
            {
                //清空文本
                this.label1.Text = "";
                //實例化一個文件流
                FileStream fs = new FileStream(op.FileName, FileMode.Open);
                //把文件讀取到字節數組
                byte [] data = new byte [fs.Length];
                fs.Read(data, 0, data.Length);
                fs.Close();

                //實例化一個內存流--->把從文件流中讀取的內容[字節數組 ]放到內存流中去
                MemoryStream ms = new MemoryStream(data);
                //設置圖片框 pictureBox1中的圖片
                this.pictureBox1.Image = Image.FromStream(ms);
            }

        }

發佈了42 篇原創文章 · 獲贊 3 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章