前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C# 基础精讲】文件读取和写入

【C# 基础精讲】文件读取和写入

作者头像
繁依Fanyi
发布2023-10-12 14:58:33
2680
发布2023-10-12 14:58:33
举报
文章被收录于专栏:繁依Fanyi 的专栏
在这里插入图片描述
在这里插入图片描述

文件读取和写入是计算机程序中常见的操作,用于从文件中读取数据或将数据写入文件。在C#中,使用System.IO命名空间中的类来进行文件读写操作。本文将详细介绍如何在C#中进行文件读取和写入,包括读取文本文件、写入文本文件、读取二进制文件和写入二进制文件等操作。

1. 读取文本文件

要读取文本文件,可以使用StreamReader类。以下是一个读取文本文件的示例:

代码语言:javascript
复制
using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        string filePath = "sample.txt";

        try
        {
            using (StreamReader reader = new StreamReader(filePath))
            {
                string content = reader.ReadToEnd();
                Console.WriteLine("文件内容:");
                Console.WriteLine(content);
            }
        }
        catch (FileNotFoundException)
        {
            Console.WriteLine("文件不存在:" + filePath);
        }
        catch (Exception ex)
        {
            Console.WriteLine("发生异常:" + ex.Message);
        }
    }
}

在上述示例中,我们使用StreamReader打开文件并使用ReadToEnd方法读取整个文件内容。通过using语句,确保在使用完StreamReader后自动释放资源。

2. 写入文本文件

要写入文本文件,可以使用StreamWriter类。以下是一个写入文本文件的示例:

代码语言:javascript
复制
using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        string filePath = "output.txt";

        try
        {
            using (StreamWriter writer = new StreamWriter(filePath))
            {
                writer.WriteLine("Hello, world!");
                writer.WriteLine("This is a line of text.");
            }

            Console.WriteLine("文件写入成功:" + filePath);
        }
        catch (Exception ex)
        {
            Console.WriteLine("发生异常:" + ex.Message);
        }
    }
}

在上述示例中,我们使用StreamWriter打开文件并使用WriteLine方法写入文本。同样,通过using语句,确保在使用完StreamWriter后自动释放资源。

3. 读取二进制文件

要读取二进制文件,可以使用BinaryReader类。以下是一个读取二进制文件的示例:

代码语言:javascript
复制
using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        string filePath = "binary.dat";

        try
        {
            using (BinaryReader reader = new BinaryReader(File.OpenRead(filePath)))
            {
                int intValue = reader.ReadInt32();
                double doubleValue = reader.ReadDouble();

                Console.WriteLine("整数值:" + intValue);
                Console.WriteLine("双精度值:" + doubleValue);
            }
        }
        catch (FileNotFoundException)
        {
            Console.WriteLine("文件不存在:" + filePath);
        }
        catch (Exception ex)
        {
            Console.WriteLine("发生异常:" + ex.Message);
        }
    }
}

在上述示例中,我们使用BinaryReader读取二进制文件中的整数和双精度值。

4. 写入二进制文件

要写入二进制文件,可以使用BinaryWriter类。以下是一个写入二进制文件的示例:

代码语言:javascript
复制
using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        string filePath = "binary_output.dat";

        try
        {
            using (BinaryWriter writer = new BinaryWriter(File.OpenWrite(filePath)))
            {
                int intValue = 42;
                double doubleValue = 3.14159;

                writer.Write(intValue);
                writer.Write(doubleValue);
            }

            Console.WriteLine("二进制文件写入成功:" + filePath);
        }
        catch (Exception ex)
        {
            Console.WriteLine("发生异常:" + ex.Message);
        }
    }
}

在上述示例中,我们使用BinaryWriter写入整数和双精度值到二进制文件。

5. 文件读写的注意事项

  • 在进行文件读写操作时,始终确保正确地处理异常。文件可能不存在、无法访问或者发生其他问题,您应该能够适当地捕获并处理这些异常。
  • 在使用StreamReaderStreamWriter时,使用using语句来自动释放资源。这有助于防止资源泄漏。
  • 对于二进制文件的读写,要确保按照相同的顺序和格式读写数据。不同的数据类型可能占用不同的字节数,需要保持一致。

6. 总结

文件读取和写入是C#中常见的操作,用于从文件中读取数据或将数据写入文件。通过System.IO命名空间中的类,您可以轻松实现文本文件和二进制文件的读写操作。无论是读取文本文件、写入文本文件,还是读取二进制文件、写入二进制文件,都需要注意异常处理、资源释放以及数据格式的一致性。通过掌握文件读写技巧,您可以更好地处理和管理文件数据,从而提高程序的灵活性和功能。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 读取文本文件
  • 2. 写入文本文件
  • 3. 读取二进制文件
  • 4. 写入二进制文件
  • 5. 文件读写的注意事项
  • 6. 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档