流与IO—StreamReader和StreamWriter

1. 流与文件

System.IO 命名空间包含允许在数据流和文件上进行同步和异步读取及写入的类型。

2. 使用Stream类管理字节流

流是对各种形式的输入输出操作的一种抽象。除常见的文件流之外,还存在网络流、内存流和磁带流等。System.IO命名空间提供的Stream(流)可以看作是一个数据字节序列,帮助在文件和内存等基础存储中读写数据。 Stream是一个抽象类FileStream、MemoryStream和BufferedStream都是从Stream类继承而来的。

3. Stream类的常用属性和方法

Stream类涉及三个基本操作:

  • 可以从流读取。读取是从流到数据结构(如字节数组)的数据传输
  • 可以向流写入。写入是从数据源到流的数据传输
  • 流可以支持查找。查找是对流内的当前位置进行的查询和修改

4. 程序解释

4.1 新建文件夹并写入

static void Main(string[] args)
        {
            string path = @"C:\temp1";
            DirectoryInfo di = new DirectoryInfo(path);
    //创建文件夹
            di.Create();

            string fileName = @"\testStreamWriter.txt";
            string dt = System.DateTime.Now.ToString() + " 1731030006 张八俊";
            FileStream fs = new FileStream(path + fileName, FileMode.Create);
            StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
    //写入的信息
            sw.WriteLine(dt);
            sw.Flush();
            sw.Close();
            fs.Close();

            Console.WriteLine("按任何键进行下一步!");
            Console.ReadKey();
        }

4.2 删除文件夹

删除文件夹时,必须要将文件夹下的所有文件都删除,否则删除出错。

static void Main(string[] args)
        {
            string path = @"C:\temp1";
            DirectoryInfo di = new DirectoryInfo(path);
            di.Delete();
            Console.WriteLine("按任何键进行下一步!");
            Console.ReadKey();
        }

4.3 在文件夹下建立子文件夹

static void Main(string[] args)
       {
            string path = @"C:\temp1";
            DirectoryInfo di = new DirectoryInfo(path);
      //CreateSubdirectory新建子文件夹
            di.CreateSubdirectory("sub");

            string fileName2 = @"\test2.txt";
            FileInfo fi = new FileInfo(path + fileName2);
            fi.Create();

            FileInfo[] files = di.GetFiles("?test2.txt");
            foreach (FileInfo f in files)
            {
      //输出文件名字,上一次访问时间
                Console.WriteLine(f.Name);
                Console.WriteLine(f.LastAccessTime);
            }
            Console.WriteLine("按任何键进行下一步!");
            Console.ReadKey();
       }

4.4 输出新建文件的绝对路径

static void Main(string[] args)
        {
            string path = @"C:\temp1";
            DirectoryInfo di = new DirectoryInfo(path);
            Console.WriteLine(Path.Combine(path, "test3.txt"));

            DriveInfo[] drivers = DriveInfo.GetDrives();
            //DriveInfo.GetDrives()输出新建文件夹的绝对路径
            DriveInfo d = new DriveInfo(drivers[0].Name); ;
            d.RootDirectory.GetFiles();
            Console.WriteLine("按任何键进行下一步!") ;
            Console.ReadKey();
        }
3.jpg

你可能感兴趣的:(流与IO—StreamReader和StreamWriter)