C#里的文件流(FileStream)

本文介绍了如何在C#中使用FileStream类进行文件的读写操作。包括通过FileStream创建文件、将字符串转换为字节数组写入文件,以及如何从文件中读取数据并转换为字符串。

 C#里的文件流(FileStream)

一、文件流(FileStream)

FileStream 类是公开以文件为主的 Stream,既支持同步读写操作,也支持异步读写操作。

命名空间:System.IO

程序集:mscorlib(在 mscorlib.dll 中)

 

在C#中的声明为

[ComVisibleAttribute(true)]
public class FileStream : Stream
 
二、文件流写入

 

 private void btnChooseOpenFile_Click(object sender, EventArgs e)
        {
            //选择文本框 对象
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.InitialDirectory = @"C:\Users\John\Desktop";
            //如果用户确定
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                //将用户选择的文件路径显示在文本框上
                txtFilePathOpen.Text = ofd.FileName;
            }
        }

        //保存文件
        private void btnSave_Click(object sender, EventArgs e)
        {
            string strContent = txtInputSave.Text.Trim();
            //创建文件流(文件路径,文件操作、创建)
            using (FileStream fs = new FileStream(txtFilePathOpen.Text, FileMode.Create))
            {
                //将字符串字符串转成byte数组
                byte[] byteFile = Encoding.UTF8.GetBytes(strContent);
                //参数:要写到文件的数据数组,从第几个开始写,一共写多少个
                fs.Write(byteFile, 0, byteFile.Length);
                MessageBox.Show("保存成功!");
            }
        }

 

 

 

二、文件流读出
 

 

 

private void btnChooseOpenFile2_Click(object sender, EventArgs e)
        {
            //选择文本框 对象
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.InitialDirectory = @"C:\Users\John\Desktop";
            //如果用户确定
            if (ofd.ShowDialog() == DialogResult.OK) 
            {
                //将用户选择的文件路径显示在文本框上
                txtFilePathOpen2.Text = ofd.FileName;
            }
        }

        private void btnRead_Click(object sender, EventArgs e)
        {
            using (FileStream fs = new FileStream(txtFilePathOpen2.Text, FileMode.Open))
            {
                byte[] byteData = new byte[1024 * 1024 * 4];
                //返回读取的长度
                int length=fs.Read(byteData,0,byteData.Length);
                if (length > 0) 
                {
                    string strData = Encoding.UTF8.GetString(byteData);
                    txtOutputRead.Text = strData;
                    MessageBox.Show("读取成功");
                }
            }
        }
 
四、结果:
 
说明:FileStream将文件中的数据以字节地方式读出(Read)或写入(Write)
当我们需要使用文件流时,需要Encoding.UTF8.GetBytes(strContent);
当我们需要显示时,需要:Encoding.UTF8.GetString(byteData);
C#中的FileStream封装的比较好,比较简单。
FileStream同样可以在C++,J#,VB,JS等当中使用。
本博客中的例子是FileStream在WinForm程序中的简单应用,代码在附件中哦!
C#中,将FileStream文件流)保存为文件通常涉及以下几个步骤: 1. **创建FileStream对象**:首先,你需要通过指定文件路径和模式(如读取、写入或追加)来创建FileStream对象。例如: ```csharp using (FileStream fileStream = File.OpenWrite("path_to_your_file.txt")) { /*操作文件流*/ } ``` 2. **读取或写入数据**:如果你已经有了需要保存的数据,可以使用`fileStream.Write()`方法将数据写入文件,如果数据是从其他源获取的,则应先加载到内存。 3. **处理文件内容**:你可以选择直接从另一个文件或程序响应中读取数据,然后将其写入FileStream。例如,读取字符串并写入: ```csharp string data = "Your data to save"; byte[] bytes = Encoding.UTF8.GetBytes(data); fileStream.Write(bytes, 0, bytes.Length); ``` 4. **关闭文件流**:完成所有操作后,记得关闭FileStream以释放系统资源: ```csharp fileStream.Close(); ``` 5. **检查错误**:最好在每个关键操作后检查异常,确保文件操作顺利完成。 **示例完整代码**: ```csharp using System; using System.IO; public void SaveFileStream(string filePath) { try { // 创建文件流并打开以写入 using (FileStream fileStream = File.Create(filePath)) { // 假设data是你要保存的内容 string data = "This is the content to save."; // 转换为字节数组并写入文件 byte[] dataBytes = Encoding.UTF8.GetBytes(data); fileStream.Write(dataBytes, 0, dataBytes.Length); Console.WriteLine($"Data saved at: {filePath}"); } } catch (Exception ex) { Console.WriteLine($"Error saving file: {ex.Message}"); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值