C#中filestream类的属性、方法介绍

作者:袖梨 2022-06-25

使用 FileStream 选件类读取,写入,打开和关闭的文件在文件系统和操作其他文件相关的操作系统句柄,包括管道铺设、标准输入和标准输出。可以使用 Read、Write、CopyTo和 Flush 方法执行同步操作或 ReadAsync、WriteAsync、CopyToAsync和 FlushAsync 方法执行异步操作。  使用异步方法执行大量资源文件操作,而不必阻止主线程。  此性能注意事项非常重要。Windows 应用商店 app 或耗时的流操作会阻止 UI 线程并将您的应用程序显示的 桌面 app,就象它不起作用。  缓冲输入和输出以获得更好的性能

例子

废话不说,开始操作。

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

jquery1700010323288557426702="1" />

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

 代码如下 复制代码

privatevoid btnReadChoose_Click(object sender, EventArgs e)
        {
//创建 打开文件 对话框,可以直接拖控件哈。。
            OpenFileDialog ofd=new OpenFileDialog();
//将文件路径显示在文本框
if (ofd.ShowDialog() == DialogResult.OK)
            {
                txtReadPath.Text = ofd.FileName;
            }
        }


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


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

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

 代码如下 复制代码

#region 显示温馨提示的消息+void MsgShow(string Msg)
///


/// 显示温馨提示的消息
///

///消息
void MsgShow(string Msg)
        {
            lbResult.Text ="温馨提示:"+Msg;
        }
#endregion


读出操作

 代码如下 复制代码


privatevoid btnReadFile_Click(object sender, EventArgs e)
        {
//创建文件流、流操作要进行异常处理,并以using来释放对象
try
            {
using (FileStream fs =new FileStream(txtReadPath.Text, FileMode.Open))
                {
//定义缓存区,3M 大小
byte[] arrFileData =newbyte[1024*1024*3];
//读文件 存在 arrFileData 中
                    fs.Read(arrFileData, 0, arrFileData.Length);
//转 编码格式 以便显示在 文本框 txtReadMsg 中
string ChangeToString = Encoding.Default.GetString(arrFileData);
                    txtReadMsg.Text = ChangeToString;
                    MsgShow("文本读取成功!!!");
                }
            }
catch (Exception ex)
            {
                MessageBox.Show("异常:"+ ex.Message);
            }

        }


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

 代码如下 复制代码

privatevoid btnWriteFile_Click(object sender, EventArgs e)
        {
//获取要写入文本的数据
string strWriteData = txtWriteMsg.Text;
try
            {
using (FileStream fs =new FileStream(txtWritePath.Text, FileMode.Create))
                {
//转为二进制写入文本
byte[] arrWriteData = Encoding.Default.GetBytes(strWriteData);

//fs.Write(数据缓存区,从第几个byte开始写,写多少个)
                    fs.Write(arrWriteData, 0, arrWriteData.Length);
                    MsgShow("写入文本成功!!!");
                }
            }
catch (Exception ex)
            {

                MessageBox.Show("异常:"+ ex.Message);
            }


就这么滴,一个基于文件流FileStream的文本写入、读取小程序就完工了。主要是自己总结

总结

1)读写文件的五个步骤:创建文件流、创建读写器、读写文件、关闭读写器、关闭文件流。
(2)文件流的类是FileStream,创建一个文件流时,需要指定操作文本的路径、文件的打开方式和文件的访问方式。
(3)StreamWriter是一个写入器,StramReader是一个读取器。读写文本文件可以直接使用读写器,不用创建文件流,但是不容易控制文本的打开方式和访问方式
(4)File类用于对文件进行操作,如复制、移动、删除等,Directory类用于对文件夹操作,它们都是静态类。
(5)静态类只包含静态成员,非静态类可以包含静态成员;静态类不能包含实例成员,非静态类可以包含实例成员;静态类使用类名访问其成员,非静态类使用它的实例对象访问成员。
(6)FileInfo类与File类功能类似,也可以完成对文件的基本操作。不同的是File类不可以实例化对象。如果打算多次重用某个文件对象,可以优先考虑使用FileInfo类,因为并不总是需要安全检查
(7)DirectoryInfo类与Directory类功能类似,可以完成对文件夹的基本操作。如果打算多次重用某个目录对象,可以考虑使用DirectoryInfo类的实例方法

相关文章

精彩推荐