C# IO读写文件

Posted 勿在浮沙筑高台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# IO读写文件相关的知识,希望对你有一定的参考价值。

WriteFile.cs

 1 using System;
 2 
 3 using System.IO;
 4 
 5 namespace IO_读写文件
 6 {
 7     class CRead_Write_File
 8     {
 9         /// <IsExits() > 判断file_name是否已经存在 
10         /// </IsExits() >
11         /// 
12         /// <param name="file_name"> 文件名(如果不和执行文件在同一个目录下,则需要带上全路径)
13         /// </param>
14         /// 
15         /// <returns> 1.存在: true;           2.不存在: false
16         /// </returns>
17         public bool IsExits(string file_name)
18         {
19             // Exists()判断文件是否存在; 存在 : true  2.不存在: false 
20             if ( File.Exists(file_name) )
21             {
22                 return true;
23             }
24             return false;
25         }
26 
27         /// < Create() 说明 >创建文件
28         /// </Create()说明 >
29         /// 
30         /// <param name="file_name">文件名(默认与执行文件处于同一个目录下)
31         /// </param>
32         /// 
33         /// <returns> 1.创建成功:1 ;    2. 文件已存在: 0 ;    3.创建失败:-1
34         /// </returns>
35         public int Create(string file_name)
36         {
37             if ( IsExits(file_name) )
38             {
39                 return 0;                           // file_name 文件存在 , 不用再次创建, 返回 0
40             }
41 
42             // 如果不存在则创建 file_name
43             using( FileStream fs = new FileStream(file_name, FileMode.Create) )
44             {
45                 try
46                 {
47                 }
48                 finally
49                 {
50                     fs.Close();        // 必须关闭
51                 }
52             }
53 
54             if (IsExits(file_name))
55             {
56                 return 1;                           // 创建成功, 返回 1
57             }
58             return -1;                              // 创建失败, 返回 -1
59         }
60 
61         /// <Write() 说明>向目标文件写入字符串
62         /// </Write 说明>
63         /// 
64         /// <param name="log">要写入的字符串 
65         /// <param name="tw">目标文件的缓冲区
66         /// </param>
67         public void Write(string log, TextWriter tw)
68         {
69             tw.WriteLine(log);
70             tw.Flush();
71         }
72 
73     }
74 }

 

Program.cs

 

 1 using System;
 2 
 3 using System.IO;
 4 
 5 namespace IO_读写文件
 6 {
 7     class Program
 8     {
 9         static void Main(string[] args)
10         {
11             const string FILE_NAME = "Test_Write.txt";
12             CRead_Write_File rwf = new CRead_Write_File();
13 
14             // 1.测试创建文件
15             switch (rwf.Create(FILE_NAME))
16             {
17                 case 0:
18                     Console.WriteLine("Test_Write.txt 文件已存在,不需要重复创建.");
19                     break;
20                 case 1:
21                     Console.WriteLine("Test_Write.txt 创建成功!");
22                     break;
23                 case -1:
24                     Console.WriteLine("Test_Write.txt 创建失败!");
25                     break;
26             }
27 
28             // 2.测试写入文件
29             using (StreamWriter sw = File.AppendText(FILE_NAME))
30             {
31                 try
32                 {
33                     rwf.Write("hehe", sw);
34                     rwf.Write("hello world 你好!", sw);
35                 }
36                 finally
37                 {
38                     sw.Close();
39                 }
40             }
41 
42             // 3.测试读取文件
43             if (false == rwf.IsExits(FILE_NAME))
44             {
45                 Console.WriteLine("{0} 不存在", FILE_NAME);
46                 return;
47             }
48             
49             using (StreamReader sr = File.OpenText(FILE_NAME))
50             {
51                 try
52                 {
53                     string readdata = "";
54                     while ( null != ( readdata = sr.ReadLine() ) )
55                     {
56                         Console.WriteLine(readdata);
57                     }
58                 }
59                 finally
60                 {
61                     sr.Close();
62                 }
63             }
64 
65             
66             Console.ReadLine();
67         }
68     }
69 }

 

技术分享技术分享

 

以上是关于C# IO读写文件的主要内容,如果未能解决你的问题,请参考以下文章

C#常用IO流及读写文件

紧急求助 c#流不支持并发IO读写问题

C#读写二进制文件

C# 之 读写文件

c# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件

c# 读写文件时文件正由另一进程使用,因此该进程无法访问该文件