C# 一分钟浅谈:文件操作与文件流详解

举报
超梦 发表于 2024/09/05 08:31:42 2024/09/05
【摘要】 在日常开发中,对文件进行读写是一项基本且重要的任务。C# 提供了多种方式来处理文件和流,包括但不限于 System.IO 命名空间下的类,如 FileStream, StreamReader, StreamWriter, BinaryReader, BinaryWriter 等。本文将从基础概念出发,逐步深入探讨这些类的使用方法,并指出一些常见的错误及其避免策略。 文件操作基础 创建和打开文...

在日常开发中,对文件进行读写是一项基本且重要的任务。C# 提供了多种方式来处理文件和流,包括但不限于 System.IO 命名空间下的类,如 FileStreamStreamReaderStreamWriterBinaryReaderBinaryWriter 等。本文将从基础概念出发,逐步深入探讨这些类的使用方法,并指出一些常见的错误及其避免策略。
image.png

文件操作基础

创建和打开文件

示例代码:

using System;
using System.IO;

class FileOperations {
    static void Main() {
        string filePath = @"C:\temp\example.txt";

        // 使用 FileStream 打开文件
        using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)) {
            byte[] info = new UTF8Encoding(true).GetBytes("Hello World!");
            fs.Write(info, 0, info.Length);
        }

        // 读取文件
        using (StreamReader sr = new StreamReader(filePath)) {
            String s = sr.ReadToEnd();
            Console.WriteLine("读取的内容: " {s});
        }
    }
}

错误处理

常见错误:

  • 文件不存在:尝试访问一个不存在的文件。
  • 权限问题:没有足够的权限去读写文件。
  • 文件被占用:文件正在被其他程序使用。

如何避免:

  • 在操作文件前检查文件是否存在。
  • 检查是否有足够的权限。
  • 尽量使用 using 语句确保文件正确关闭,防止资源泄露。

文件流操作

文件流的基本概念

FileStream 是 System.IO 命名空间中的一个类,用于创建或打开文件并提供对文件的原始字节流的访问。它支持对文件的读写操作。

使用示例

写入二进制数据

using System;
using System.IO;

class FileStreamExample {
    static void Main() {
        string filePath = @"C:\temp\binaryData.bin";
        byte[] data = {1, 2, 3, 4, 5};

        // 写入数据
        using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write)) {
            fs.Write(data, 0, data.Length);
        }

        // 读取数据
        using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read)) {
            byte[] readData = new byte[5];
            fs.Read(readData, 0, 5);
            Console.WriteLine(BitConverter.ToString(readData));
        }
    }
}

错误处理与优化建议

  • 异常处理:总是包裹在 try-catch 块中,以便优雅地处理可能出现的任何异常。
  • 性能考虑:对于大文件的操作,应考虑使用缓冲区来提高效率。
  • 安全编码实践:避免硬编码文件路径,使用参数化查询或其他安全机制处理用户输入。

通过以上介绍,我们了解了 C# 中文件操作的基础知识以及如何利用 FileStream 类来进行更底层的文件流操作。掌握这些技巧对于任何希望提升自己编程技能的开发者来说都是必不可少的。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。