C#:IO

1. File和Directory类

这两个类属于静态类,经常用到的比如File.Exists(string path), Directory.Exists(string path), Directory.GetCurrentDirectory(), Directory.SetCurrentDirectory(string path);

另外还有FileInfo和DirectoryInfo类,属于实例类,用法跟File和Directory差不多,就是要先实例化出来

当单一调用的时候优先用File和Directory类,如果操作很多,则用FileInfo和DirectoryInfo类会更好

 

2. FileStream类

用于指向文件的流操作,读写文档没StreamReader和StreamWriter方便

当然FileStream类最牛逼的地方在于Seek(long offset, SeekOrigin)这个方法

FileStream(string fileName, FileMode);

FileStream(string fileName, FileMode, FileAccess);

1     public enum FileMode

2     {

3         Append,

4         Create,

5         CreateNew,

6         Open,

7         OpenOrCreate,

8         Truncate

9     }
public enum FileMode
1     public enum FileAccess

2     {

3         Read,

4         ReadWrite,

5         Write

6     }
public enum FileAccess

 

 

3. FileWriter

虽然FileWriter能够直接对文件写入,但是没有更多选项,所以一般要先创建一个FileStream,再创建FileWriter

 

4.FileReader

与FileWriter一样,但是FileStream的FileMode要改改

Read的时候可能会有文件不存在的BUG,所以要么加上try..catch,要么先判断exists

 

5. Path类

静态类,主要有GetDirectoryName和GetFileName两个方法

 

下面这段代码集成了上面的内容

 1 using System;

 2 using System.Collections.Generic;

 3 using System.Linq;

 4 using System.Text;

 5 using MySql.Data;

 6 using MySql.Data.Entity;

 7 using MySql.Data.MySqlClient;

 8 using System.IO;

 9 

10 namespace test4

11 {

12     class Program

13     {

14         const string FILE = @"C:\Users\Administrator\Desktop\test.txt";

15         const string DIRECTORY = @"C:\Users\Administrator\Desktop\";

16         static void Main(string[] args)

17         {

18             if (File.Exists(FILE))

19             {

20                 Console.WriteLine("test.txt exist on desktop");

21             }

22             if (Directory.Exists(DIRECTORY))

23             {

24                 Console.WriteLine("Desktop directory exists");

25             }

26             Console.WriteLine(Directory.GetCurrentDirectory());

27             Console.WriteLine(Path.GetDirectoryName(FILE));

28             Console.WriteLine(Path.GetFileName(FILE));

29             //FileStream fst = File.OpenRead(FILE);

30             //StreamWriter sw = new StreamWriter(FILE, true);

31             FileStream fst = new FileStream(FILE, FileMode.Append | FileMode.OpenOrCreate);

32             StreamWriter sw = new StreamWriter(fst);

33             sw.WriteLine("xueyiyi");

34             sw.Close();

35             fst.Close();

36             //try

37             //{

38             //    fst = new FileStream(FILE, FileMode.Open);

39             //    StreamReader sr = new StreamReader(fst);

40             //    string str;

41             //    while ((str = sr.ReadLine()) != null)

42             //    {

43             //        Console.WriteLine(str);

44             //    }

45             //    sr.Close();

46             //    fst.Close();

47             //}

48             //catch (IOException e)

49             //{

50             //    Console.WriteLine("An IO exception has been thrown!");

51             //    Console.WriteLine(e.ToString());

52             //    return;

53             //}

54             if (File.Exists(FILE))

55             {

56                 fst = new FileStream(FILE, FileMode.Open);

57                 StreamReader sr = new StreamReader(fst);

58                 string str;

59                 while ((str = sr.ReadLine()) != null)

60                 {

61                     Console.WriteLine(str);

62                 }

63                 sr.Close();

64                 fst.Close();

65             }

66             else

67             {

68                 Console.WriteLine(FILE + " does not exist");

69             }

70         }

71     }

72 }
View Code

 

你可能感兴趣的:(C#)