随笔 - 23  文章 - 0  评论 - 3  阅读 - 30242

文件的读写操作

文件读写用途:

  • 数据存储和持久化:将应用程序中的数据写入文件,使得数据在程序退出后仍然存在,从而实现数据的持久化
  • 数据共享:将数据写入文件后,其他应用程序或系统可以读取并共享这些数据,实现数据的共享和交流
  • 配置文件:许多应用程序使用配置文件存储用户设置和参数,以便在下次运行时使用
  • 日志记录:通过将运行时信息写入文件,实现错误日志,事件记录等功能,帮助程序员调试和监控程序
  • 数据库文件:数据库系统使用文件存储数据,使得数据可以跨程序访问和管理

文件读写的基本操作

打开和关闭文件

打开文件和关闭文件是进行文件读写操作的两个基本步骤,这些步骤允许程序与文件进行交互并对其进行读写操作。

  • 打开文件

打开文件是指将文件连接到程序的过程,使得程序可以访问文件的内容。在打开文件时,需要指定文件的路径和打开模式。打开模式可以是只读模式(用于读取文件内容)、写入模式(用于向文件中写入数据)、追加模式(用于在文件末尾追加数据)等。在C#中,可以使用FileStream类或者更高级的StreamReaderStreamWriter类来打开文件。

复制代码
 1 using System;
 2 using System.IO;
 3 
 4 class Program
 5 {
 6     static void Main()
 7     {
 8         // 打开文件并创建FileStream对象
 9         using (FileStream fileStream = new FileStream("example.txt", FileMode.Open, FileAccess.Read))
10         {
11             // 读取文件内容
12             StreamReader reader = new StreamReader(fileStream);
13             string content = reader.ReadToEnd();
14             Console.WriteLine(content);
15         }
16     }
17 }
复制代码
  • 关闭文件

文件读写完成后,需要关闭文件以释放资源。在C#中,可以使用using语句块来自动释放文件资源,不必手动调用关闭方法。using语句块会在代码块执行完毕后自动调用文件的Dispose方法,从而关闭文件。

复制代码
 1 using System;
 2 using System.IO;
 3 
 4 class Program
 5 {
 6     static void Main()
 7     {
 8         // 打开文件并创建FileStream对象
 9         using (FileStream fileStream = new FileStream("example.txt", FileMode.Open, FileAccess.Read))
10         {
11             // 读取文件内容
12             StreamReader reader = new StreamReader(fileStream);
13             string content = reader.ReadToEnd();
14             Console.WriteLine(content);
15         } // 自动调用fileStream.Dispose()方法,关闭文件
16     }
17 }
复制代码

通过打开文件和关闭文件的操作,程序可以安全地读取和写入文件内容,避免资源泄漏和文件访问冲突。务必养成在文件读写后关闭文件的习惯,以确保程序的稳定性和性能。

读取文件内容

读取文件内容是文件操作中常见的任务之一,它允许程序将文件的内容读取到内存中,以便进行后续的处理和分析。在C#中,可以使用FileStream类或者更高级的StreamReader类来读取文件内容。

  • 使用FileStream类读取文件内容:

复制代码
 1 using System;
 2 using System.IO;
 3 
 4 class Program
 5 {
 6     static void Main()
 7     {
 8         // 打开文件并创建FileStream对象
 9         using (FileStream fileStream = new FileStream("example.txt", FileMode.Open, FileAccess.Read))
10         {
11             // 读取文件内容
12             byte[] buffer = new byte[1024];
13             int bytesRead;
14             while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0)
15             {
16                 // 处理读取的数据
17                 string content = System.Text.Encoding.Default.GetString(buffer, 0, bytesRead);
18                 Console.Write(content);
19             }
20         }
21     }
22 }
复制代码
  • 使用StreamReader类读取文件内容:

复制代码
 1 using System;
 2 using System.IO;
 3 
 4 class Program
 5 {
 6     static void Main()
 7     {
 8         // 打开文件并创建StreamReader对象
 9         using (StreamReader reader = new StreamReader("example.txt"))
10         {
11             // 读取文件内容
12             string content = reader.ReadToEnd();
13             Console.WriteLine(content);
14         }
15     }
16 }
复制代码

写入文件内容

写入文件内容是文件操作中的另一个常见任务,它允许程序将数据写入文件,以便进行持久化保存或与其他程序共享数据。在C#中,可以使用FileStream类或者更高级的StreamWriter类来写入文件内容。

  • 使用FileStream类写入文件内容:

复制代码
 1 using System;
 2 using System.IO;
 3 
 4 class Program
 5 {
 6     static void Main()
 7     {
 8         string content = "Hello, this is a test content.";
 9 
10         // 打开文件并创建FileStream对象
11         using (FileStream fileStream = new FileStream("example.txt", FileMode.Create, FileAccess.Write))
12         {
13             // 将内容转换为字节数组
14             byte[] buffer = System.Text.Encoding.Default.GetBytes(content);
15             // 写入文件
16             fileStream.Write(buffer, 0, buffer.Length);
17         }
18     }
19 }
复制代码
  • 使用StreamWriter类写入文件内容:

复制代码
 1 using System;
 2 using System.IO;
 3 
 4 class Program
 5 {
 6     static void Main()
 7     {
 8         string content = "Hello, this is a test content.";
 9 
10         // 打开文件并创建StreamWriter对象
11         using (StreamWriter writer = new StreamWriter("example.txt"))
12         {
13             // 写入文件
14             writer.Write(content);
15         }
16     }
17 }
复制代码
posted on   赵书记  阅读(140)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示