C#文件操作

来源:互联网 发布:h3c 端口加入vlan 编辑:程序博客网 时间:2024/04/30 07:52

文件操作

1.读写文件第一步创建文件流

   语法:

  FileStream 文件对象=new FileStreamstring FilePath, FileMode);

   FilePath 文件路径   

FileMode: 打开文件的模式,是一个枚举类型

  Create 用于指定的名称新建一个文件,如果文件存在,则改写旧文件

  CreateNew 新建文件。如果文件存在会发生异常,提示文件已经存在

   Open 打开一个文件,使用这个枚举值时,指定的文件不存在,则指定的名称新建一个文件并打开

   OpenOrCream OpenOrCreamOpen成员相似,只是如果文件不存在,则用指定的名称新建一个文件打开

   Append 打开文件,并在文件尾追加内容

2.StreamWriter写入器

   创建文件流后,再创建写入器,StreamWriter 类称为写入器,它用于将数据写入文件流,只要将创建好的文件流传入,就可以创建它的实例 

   语法:

   StreamWriter 写入器对象=new StreamWriter(文件流对象);

   StreamWriter.Writer(): 用于写入器,

   StreamWriter.WriterLine(): 用于写入一行数据,写入数据后换行。

   StreamWriter.Close(): 用于关闭写入器

-------------------------示例代码-------------------------

      try

            {

                //创建文件流

                FileStream stream = new FileStream(@"D:\test.txt", FileMode.Create);

                //创建写入器

                StreamWriter writer = new StreamWriter(stream);

                //写入字符串

                string str = Console.ReadLine();

                writer.Write(str);

                //关闭写入器

                writer.Close();

                //关闭文件流

                stream.Close();

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.Message);

            }

-------------------------------------------------------------------------

2.StreamReader读取器

   创建文件流后,再创建读取器,StreamReader 类称为读取器,它用于将数据写入文件流,只要将创建好的文件流传入,就可以创建它的实例 

   语法:

   StreamReader 读取器对象 = new StreamWriter(文件流对象);

   StreamWriter.ReadLine(): 用于写入一行数据,写入数据后换行。

  StreamWriter.ReadLine(): 从当前位置读到末尾,返回字符串

   StreamWriter.Close(): 用于关闭读取器

 try

            {

                //创建文件流

                FileStream stream = new FileStream(@"D:\test.txt", FileMode.Open);

                //创建读取器

                StreamReader reader = new StreamReader(stream,Encoding.GetEncoding("UTF-8"));

                //读取文件所有内容

                string str = reader.ReadToEnd();

                Console.WriteLine(str);

                //关闭读取器

                reader.Close();

                //关闭文件流

                stream.Close();

            }

            catch (Exception ex)

            {

                Console.WriteLine(ex.Message); 

            }

----------------------------------------------------------------------

文件(File)和目录(Directory)的操作

1.File类的常用方法

(1)Exists(string path):检查指定文件是否存在,返回一个bool值例 

if (File.Exists(@"D:\test.txt"))

                {

                    Console.WriteLine("找到文件!");

                }

(2)Copy(string SourceFilePath,string DestinationFilePath):将指定的源文件(ourceFilePath)中的内容复制到目标文件(DestinationFilePath)中,如果目标文件不存在,则在指定的路径中新建一个文件

(3)Move(string SourceFileName,string DestinationFileName): 将指定的文件(ourceFilePath)移动到新的路径(将指定的源文件(ourceFilePath)例: File.Copy(@"D:\test.txt", @"E:\test.txt");

(4)Delete(string path):删除指定文件,如果指定文件不存在,则不发生异常 File.Delete(@"D:\test.txt");

2.Directory类的常用的方法

1Exists(string path): 用于检查指定文件夹在磁盘上是否存在

2Move(string sourceDirName,stirng destDirName): 用于将文件或者目录及其内容移到新的位置

3delete(string,bool):  删除指定目录,如果bool值为true,则删除子目录的所有目录内容

3.FileInfo类的属性和方法

FileInfo 对象名=new FileInfo(@"文件路径");

(1)Exists属性: 用于检查指定文件是否存在,返回一个bool值 例:FileInfo类的对象.Exists

(2)Extension属性: 获取表示文件扩展名部分的字符串(后缀名) 例:FileInfo类的对象.Extension

(3)Name属性: 获取文件名 例:FileInfo类的对象.Name

(4)FullName属性: 获取目录或文件的完整目录  例:FileInfo类的对象.FullName

(5)CopyTo(String): 将现有的文件复制到新文件,不允许覆盖现有的文件 例:FileInfo类的对象.CopyTo(String)

(6)Delete(): 永久删除文件    例: FileInfo类的对象.Delete()

(7)MoveTo(string): 将指定文件移到新的位置(string)  例: FileInfo类的对象.MoveTo(string)

4.DirectoryInfo类的属性和方法

DirectoryInfo 对象名=new  DirectoryInfo(@"文件路径");

两个重要的方法

(1)GetDirectory():该方法返回当前目录的子目录对象数组,Directory也有这个方法,但返回值是当前目录子目录的名称数组

(2)GetFiles():该方法返回当前目录下文件列表(FileInfo对象数组),Directory也有这个方法,但返回值是指定目录子目录的名称数组

5.要注意的是 File类和Directory类都用静态方法操作文件和目录,而FileInfo类和DirectoryInfo类都要实例化

MyFile类的属性

1float类型FileLength属性文件长度,以KB为单位

2string类型FileName 属性:文件名

3string类型FilePath 属性:文件路径




using System;

using System.IO;
using System.Text;


namespace WindowsFormsApplication4
{
    public static class UserDataAccessor
    {
        private static int s_MsgIndex = 0;


        public static void SaveData(UserData userMsgClass)
        {
            string realAddess = "E:\\myCode\\Test_23\\用户信息主文件夹";


            if (!Directory.Exists(realAddess))
                Directory.CreateDirectory(realAddess);


            //将用户输入的地址切割???????????????????????创建文件还没有实现
            string[] addressStrArray = userMsgClass.UserAdderss.Split(' ');
            string cellNameStr = addressStrArray[0];
            string floorNameStr = addressStrArray[1];


            var filePath = Path.Combine(realAddess, "\\" + cellNameStr + "\\" + floorNameStr + (s_MsgIndex++) + ".dat");


            //创建文件
            FileStream fileStream = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.None, 4096, true);


            string userStrMsg = userMsgClass.UserID + ' ' +
                                userMsgClass.UserName + ' ' +
                                userMsgClass.UserTelnum + ' ' +
                                userMsgClass.UserAdderss  + ' ' + "\r\n";
            byte[] buffer = Encoding.ASCII.GetBytes(userStrMsg);


            //写文件=============写什么,从哪开始,写多少,异步写操作完成后调用的方法(来关闭文件),它将该特定的异步写入请求与其他请求区别开来。
            fileStream.BeginWrite(buffer, 0, buffer.Length, WriteDone, fileStream);
        }


 
        //使用 AsyncCallback 委托在一个单独的线程中处理异步操作的结果。 AsyncCallback 委托表示在异步操作完成时调用的回调方法。
        //回调方法采用 IAsyncResult 参数,该参数随后可用来获取异步操作的结果。
        //当文件写完后关闭文件
        private static void WriteDone(IAsyncResult ar)
        {
            Stream s = (Stream)ar.AsyncState;
            s.EndWrite(ar);
            s.Close();
        }
    }
}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩乳牙没掉就长出新牙怎么办 复读一年还考大专怎么办 宝贝刚上幼儿园哭怎么办 新入幼儿园宝贝老是哭怎么办 孩子不太会说话幼儿园不要怎么办 幼儿上台表演害羞胆怯怎么办 小学转学学校不接收怎么办 在校读书的留守儿童怎么办 足球比赛中裁判碰到球怎么办 花盆的土变硬板结怎么办 lol皮肤不想要了怎么办 泉州小黄人自行车被偷怎么办 小学数学没学好上初中怎么办 50天的宝宝缺钙怎么办 5个月的宝宝缺钙怎么办 空调接电后指示灯不亮怎么办 欧普led灯坏了怎么办 led灯条芯片坏了怎么办 太阳能板只有电压没有电流怎么办 农村按空调房屋不保温怎么办 自己一个人想去足疗店不敢去怎么办 吊灯led灯坏了怎么办 办健身卡老板携款跑路了怎么办 武安丰尚健身怎么办卡 热敷后眼睛肿了怎么办 两眼视力差距大怎么办 怀孕体重长得快怎么办 怀孕初期发胖6斤怎么办 孕早期长得太快怎么办 怀孕了肚子眼脏怎么办 孕38周孩子偏小怎么办 孕初期胖的厉害怎么办 怀孕干活累着了怎么办 怀孕了上班很累怎么办 孕妇胖的太快怎么办 孕妇长得太快怎么办 眼睛一按吱吱响怎么办 孕期太胖了怎么办啊 人流后子宫复位不好怎么办 怀孕初期有盆腔积液怎么办 怀孕了有盆腔积液怎么办