首页 > 代码库 > C#语言进阶——2.C# 的 I/O 操作

C#语言进阶——2.C# 的 I/O 操作

1.C# 的获取文件详情

 1         static void Main(string[] args)
 2         {
 3             //检查一个文件是否存在 不区分大小写
 4             Console.WriteLine(File.Exists(@"C:\HelloIo\Io.txt")); //File,Directory 静态类
 5             //检查一个文件夹是否存在的
 6             Console.WriteLine(Directory.Exists(@"c:\"));
 7             //小例子 获取一个路径下面为exe 可以执行文件的详情
 8             string path = ".";//默认获取当前路径
 9             if (args.Length > 0)
10             {
11                 if (Directory.Exists(args[0]))//只检查第一个参数
12                 {
13                     path = args[0];
14                 }
15                 else
16                 {
17                     Console.WriteLine("{0} 这个路径没有找到", args[0]);
18                 }
19 
20             }
21             //对文件进行操作, DirectoryInfo和FileInfo 可以实例化
22             DirectoryInfo dir = new DirectoryInfo(path);
23             foreach (FileInfo f in dir.GetFiles(".exe"))
24             {
25                 string name = f.Name;// 获取文件的名字
26                 long size = f.Length;//获取文件的大小
27                 DateTime creationTime = f.CreationTime;//获取文件的创建时间
28                 Console.WriteLine("{0,12:NO} {1,-20:g}{2}", size, creationTime, name);
29 
30             }
31 
32             Console.ReadKey();
33         }

2.C# 写入文件操作

2.1新增

 1         static void Main(string[] args)
 2         {
 3             if (File.Exists(FILE_NAME))
 4             {
 5                 Console.WriteLine("{0} 文件已经存在", FILE_NAME);
 6                 Console.ReadKey();
 7                 return;
 8             }
 9             else
10             {
11                 //如果不存在创建文件
12                 FileStream fs = new FileStream(FILE_NAME, FileMode.Create);//文件流
13                 BinaryWriter w = new BinaryWriter(fs);//字节写入
14                 for (int i = 0; i < 11; i++)
15                 {
16                     w.Write("a");
17                 }
18                 //关闭
19                 w.Close();
20                 fs.Close();
21             }
22         }

2.2编辑

 1        private const string FILE_NAME = "Test.txt";  //文件名
 2         static void Main(string[] args)
 3         {
 4             //StreamWriter w  声明实例化后会被销毁,系统资源得到很好的释放
 5             // 一般用于比较消耗资源的操作 如IO的读写 或者数据库连接
 6             using (StreamWriter w = File.AppendText(FILE_NAME))
 7             {
 8                 log("hehe", w);
 9                 log("Hello IO",w);
10                 w.Close();
11             }
12         }
13 
14         /// <summary>
15         /// 编辑文件
16         /// </summary>
17         /// <param name="logMessage">内容</param>
18         /// <param name="w">文件名</param>
19         public static void log(string logMessage,TextWriter w)
20         {
21             w.Write("\r\nlog Entry:");//回车下一行
22             w.WriteLine(" :{0}", logMessage);
23             w.Flush();
24         }
25 
26     }

3.C# 读取文件操作

方式一

 1         private const string FILE_NAME = "Test.txt";  //文件名
 2         static void Main(string[] args)
 3         {
 4             if(!File.Exists(FILE_NAME))
 5             {
 6                 Console.WriteLine("{0} 文件不存在", FILE_NAME);
 7                 Console.ReadKey();
 8                 return;
 9             }
10             else
11             {
12                 //文件名 打开方式 应用的权限
13                 FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read);
14                 BinaryReader r = new BinaryReader(fs);
15                 for (int i = 0; i < 11; i++)
16                 {
17                     Console.WriteLine(r.ReadString());
18                 }
19                 r.Close();
20                 fs.Close();
21                 Console.ReadKey();
22             }
23         }

方式二

 1         private const string FILE_NAME = "Test.txt";  //文件名
 2         static void Main(string[] args)
 3         {
 4             if(!File.Exists(FILE_NAME))
 5             {
 6                 Console.WriteLine("{0} 文件不存在", FILE_NAME);
 7                 Console.ReadKey();
 8                 return;
 9             }
10             else
11             {
12                 using (StreamReader sr =File.OpenText(FILE_NAME))
13                 {
14                     string input;
15                     //如果读取哪行不是为空的话就继续读取下去
16                     while ((input = sr.ReadLine())!=null)
17                     {
18                         Console.WriteLine(input);
19                     }
20                     Console.WriteLine("文件读取完毕");
21                     sr.Close();
22                 }
23                 Console.ReadKey();
24             }
25         }

 

C#语言进阶——2.C# 的 I/O 操作