C# 文件操作

一 File\FileInfo类

在.NETFramework提供的文件操作类基本上都位于System.IO的命名空间下。操作硬盘文件常用的有两个类File\FileInfo.

File类主要是通过静态方法实现的,FileInfo类是通过实例方法。

File类核心成员:

 FileInfo类的实例成员提供了与File相似的功能,方法名称基本一致,大多数情况下,FileInfo和File类可以互换使用,但是由于File类所提供的方法都是静态方法,所以如果只想执行一个操作,使用File类的效率相对更高一点。

using System;
using System.IO;

namespace 文件操作01
{
    class Program
    {
        static void Main(string[] args)
        {
            FileStream fs = null;
            StreamWriter sw = null;
            string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\" + "123.txt";
            if (!File.Exists(path))
            {
                fs = File.Create(path);
                Console.WriteLine("新建一个文件:{0}", path);
            }
            else
            {
                fs = File.Open(path, FileMode.Open);
                Console.WriteLine("文件已经存在,直接打开", path);
            }

            sw = new StreamWriter(fs);
            sw.WriteLine("测试文本");
            Console.WriteLine("向文件写入文本数据");
            sw.Flush();
            sw.Close();
            fs.Close();
            Console.WriteLine("关闭数据流");
            Console.ReadKey();
        }
    }
}

二 Directory/DirectoryInfo类

这两个类中都包含了一组用来创建、移动删除、和枚举所有目录或者子目录的成员。

Directory常用成员:

 DirectoryInfo类所提供的成员与Directory类的相似,在大多数情况下,可以互换使用。

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Threading.Tasks;

namespace 文件操作02
{
    class Program
    {
        static void Main(string[] args)
        {
            string dirPath = "C:\\存储盘";
            string filePath = string.Format("{0}\\{1}", dirPath, "wuzhTest.txt");
            if (!Directory.Exists(dirPath))
            {
                Directory.CreateDirectory(dirPath);
                Console.WriteLine("新建一个目录:{0}", dirPath);
            }
            else
            {
                Console.WriteLine("目录已经存在");
            }

            FileInfo file = new FileInfo(filePath);
            if (!file.Exists)
            {
                file.Create();
                Console.WriteLine("新建一个文件:{0}", filePath);
            }
            else
            {             
                Console.WriteLine("文件{0}已经存在", filePath);
            }
        }
    }
}

三 流(Stream)

流(Stream)可以理解为内存中的字节序列,Stream类是所有流的抽象基类,每个具体的存储实体都可以通过Stream派生类来实现,比如FileStream类。

流涉及到三个基本操作:

1 对流进行读取,

2 对流进行写入

3 对流进行查找

Stream类常用成员如下:

 

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Threading.Tasks;

namespace 文件操作03
{
    class Program
    {
        static void Main(string[] args)
        {
            string filePath = "C:\\存储盘\\wuzh04.txt";
            using(FileStream fs = File.Open(filePath, FileMode.OpenOrCreate))
            {
                string msg = " hello SMS";
                StreamWriter sw = new StreamWriter(fs);//创建StreamWriter对象
                Console.WriteLine("开始写入{0}到文件",msg);
                sw.Write(msg);
                StreamReader sr = new StreamReader(fs);//创建StreamReader对象
                Console.WriteLine("写入文件中的数据为:\n{0}", sr.ReadToEnd());
                sw.Close();
                sr.Close();
                Console.Read();
            }
        }
    }
}

读写器

文本读写器:TextReader类,TextWriter类

字符串读写器:StringReader类,StringWriter类

二进制读写器:BinaryReader类,BinaryWriter类

流读写器:StreamReader类,StreamWriter类

四 文件异步操作

以FIleStream为例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值