c#文件流

 private void btnOpenFile_Click(object sender, EventArgs e)
        {
            //OpenFileDialog   打开要使用的资源
            using (OpenFileDialog ofd=new OpenFileDialog())
            {
                if (ofd.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                {
                    MessageBox.Show("请选择文件!");
                    return;
                }
                //把文件读取出来  最好不用这种方法
              // string txt=  File.ReadAllText(ofd.FileName, Encoding.Default);
                //FileAccess  定义读写的权限
                //FileMode  指定系统打开文件的方式
                using (FileStream fs = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read))
                {
                    using (StreamReader sr = new StreamReader(fs))
                    {
                        //从控件中一行一行读出
                        //EndOfStream  获取一个值  当值表示当前的流是否在流的末尾
                        while (!sr.EndOfStream)
                        {
                           string line = sr.ReadLine();
                           this.txtFileContent.Text += line;
                        }
                    }
                }
            }
        }

        /// <summary>
        /// 保存文件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            using (SaveFileDialog sfd=new SaveFileDialog())
            {
                if (sfd.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                {
                    return;
                }
               // WriteAllText  创建一个新文件  写入指定的字符串 关闭文件  存在覆盖
                // File.WriteAllText(sfd.FileName, txtFileContent.Text, Encoding.Default);
                //using (StreamWriter sw=new StreamWriter(sfd.FileName,false,Encoding.Default,1024*1024))
                //{
                //    sw.Write(txtFileContent.Text);
                //    //清理当前缓冲区  并使所有的缓冲数据写入基础流中
                //    sw.Flush();
                //}

                //FileMode指定操作系统应打开的文件
                

                using (FileStream fs = new FileStream(sfd.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite)) 
                {
                    //替换空格
                    string txt = txtFileContent.Text.Replace("\n", "\r\n");
                    
                    byte[] data = Encoding.Default.GetBytes(txt);

                    fs.Write(data, 0, data.Length);
                    
                }

            }
        }

 

posted @ 2017-06-16 22:02  石shi  阅读(516)  评论(0编辑  收藏  举报