c#/.net 基于文件流FileStream读写的文本操作小程序(转http://www.cnblogs.com/crazypig/archive/2011/07/21/2113212.html)

Coordinator
Dec 12, 2011 at 7:40 AM

FileStream对象表示在磁盘或网络路径上指向文件的流。

可以使用FileStream 类对文件系统上的文件进行读取、写入、打开、关闭等。

废话不说,开始操作。

1.拖好控件、必须滴,将除了要写文件的文本框外,其他的文本框的 ReadOnly 属性均设为 True !


2.开始"选择文件"操作

 1 private void btnReadChoose_Click(object sender, EventArgs e)
2 {
3 //创建 打开文件 对话框,可以直接拖控件哈。。
4   OpenFileDialog ofd=new OpenFileDialog();
5 //将文件路径显示在文本框
6   if (ofd.ShowDialog() == DialogResult.OK)
7 {
8 txtReadPath.Text = ofd.FileName;
9 }
10 }

  

效果图。。。路径就显示出来了。

 

3.开始"读出"操作,并将文本内容显示在文本框.

  其中先写出一个显示“温馨提示”消息的方法

 1 #region 显示温馨提示的消息+void MsgShow(string Msg)
2 /// <summary>
3 /// 显示温馨提示的消息
4 /// </summary>
5 /// <param name="Msg">消息</param>
6   void MsgShow(string Msg)
7 {
8 lbResult.Text = "温馨提示:"+Msg;
9 }
10 #endregion

  读出操作

 1 private void btnReadFile_Click(object sender, EventArgs e)
2 {
3 //创建文件流、流操作要进行异常处理,并以using来释放对象
4 try
5 {
6 using (FileStream fs = new FileStream(txtReadPath.Text, FileMode.Open))
7 {
8 //定义缓存区,3M 大小
9 byte[] arrFileData = new byte[1024 * 1024 * 3];
10 //读文件 存在 arrFileData 中
11 fs.Read(arrFileData, 0, arrFileData.Length);
12 //转 编码格式 以便显示在 文本框 txtReadMsg 中
13 string ChangeToString = Encoding.Default.GetString(arrFileData);
14 txtReadMsg.Text = ChangeToString;
15 MsgShow("文本读取成功!!!");
16 }
17 }
18 catch (Exception ex)
19 {
20 MessageBox.Show("异常:" + ex.Message);
21 }
22
23 }

  效果图:

4.开始"写入"操作,选择文件就不累赘了,差不多.

 1 private void btnWriteFile_Click(object sender, EventArgs e)
2 {
3 //获取要写入文本的数据
4 string strWriteData = txtWriteMsg.Text;
5 try
6 {
7 using (FileStream fs = new FileStream(txtWritePath.Text, FileMode.Create))
8 {
9 //转为二进制写入文本
10 byte[] arrWriteData = Encoding.Default.GetBytes(strWriteData);
11
12 //fs.Write(数据缓存区,从第几个byte开始写,写多少个)
13 fs.Write(arrWriteData, 0, arrWriteData.Length);
14 MsgShow("写入文本成功!!!");
15 }
16 }
17 catch (Exception ex)
18 {
19
20 MessageBox.Show("异常:" + ex.Message);
21 }

  效果图:

 

就这么滴,一个基于文件流FileStream的文本写入、读取小程序就完工了。主要是自己总结,更深一步了解流操作的过程,所以分享此文!

 

=======================================完==========================================

我的新浪微博:http://weibo.com/2030076164

标签: asp.net