C# 文件流操作

时间:2022-07-23
本文章向大家介绍C# 文件流操作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.IO;

namespace WindowsFormsApp10
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            if (!Directory.Exists(Environment.CurrentDirectory + "\bin"))
                   Directory.CreateDirectory(Environment.CurrentDirectory + "\bin");

           // FileStream f = File.Create(Environment.CurrentDirectory + "\bin\mydata.bin");
           // f.Close();
          //  f.Dispose();

            if (!File.Exists(Environment.CurrentDirectory + "\bin\mydata.bin"))
            File.Create(Environment.CurrentDirectory + "\bin\mydata.bin");

        }
        private void writerFile(byte[] array, string strPath)
        {
            //string content = this.txtContent.Text.ToString();

            if (string.IsNullOrEmpty(strPath))
            {
                return;
            }

            //将string转为byte数组
            //byte[] array = Encoding.UTF8.GetBytes(content);

            //string path = Server.MapPath("/test.txt");
            //创建一个文件流
        
                FileStream fs = new FileStream(strPath, FileMode.Create);

                //将byte数组写入文件中
                fs.Write(array, 0, array.Length);
                //所有流类型都要关闭流,否则会出现内存泄露问题
                fs.Close();
                //Response.Write("保存文件成功");
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Byte[] recv = new Byte[] { 0x01, 0x02, 0x03 };
            writerFile(recv, Environment.CurrentDirectory + "\bin\mydata.bin");
            MessageBox.Show("数据写入完成!");
        }
    }
}

做如下修改:

 private void Form1_Load(object sender, EventArgs e)
        {
            if (!Directory.Exists(Environment.CurrentDirectory + "\bin"))
                   Directory.CreateDirectory(Environment.CurrentDirectory + "\bin");

           FileStream f = File.Create(Environment.CurrentDirectory + "\bin\mydata.bin");
            f.Close();
           f.Dispose();

            //if (!File.Exists(Environment.CurrentDirectory + "\bin\mydata.bin"))
            //File.Create(Environment.CurrentDirectory + "\bin\mydata.bin");

        }

运行结果:

文件写入:

 if (!Directory.Exists(Environment.CurrentDirectory + "\bin"))
Directory.CreateDirectory(Environment.CurrentDirectory + "\bin");
 if (!File.Exists(Environment.CurrentDirectory + "\bin\mydata.bin"))
  File.Create(Environment.CurrentDirectory + "\bin\mydata.bin");

     lock (ThreadLock)
    {
 FileStream fs = new FileStream(Environment.CurrentDirectory + "\bin\mydata.bin", FileMode.Append,FileAccess.Write);//FileAccess.Write必须的
  fs.Write(recv, 0, recv.Length);
  fs.Close();
   fs.Dispose();
     }