C#读取与写入txt文件内容的实现方法

 更新时间:2024年08月12日 09:33:25   作者:wangnaisheng  
在 C# 中读取和写入文本文件内容是一个常见的任务,本文主要介绍了使用几种不同方法读取和写入文本文件的示例,并通过代码示例介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下

一、读取txt文件内容

1.1 使用 StreamReader

using System;
using System.IO;
 
class Program
{
    static void Main()
    {
        string filePath = @"C:\path\to\your\file.txt";
        
        try
        {
            using (StreamReader reader = new StreamReader(filePath))
            {
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
        }
        catch (FileNotFoundException)
        {
            Console.WriteLine("文件未找到,请检查文件路径是否正确。");
        }
        catch (IOException e)
        {
            Console.WriteLine("读取文件时发生错误: " + e.Message);
        }
    }
}

1.2 使用 File.ReadAllLines

using System;
using System.IO;
 
class Program
{
    static void Main()
    {
        string filePath = @"C:\path\to\your\file.txt";
        
        try
        {
            string[] lines = File.ReadAllLines(filePath);
            foreach (string line in lines)
            {
                Console.WriteLine(line);
            }
        }
        catch (FileNotFoundException)
        {
            Console.WriteLine("文件未找到,请检查文件路径是否正确。");
        }
        catch (IOException e)
        {
            Console.WriteLine("读取文件时发生错误: " + e.Message);
        }
    }
}

1.3 使用 File.ReadAllText

using System;
using System.IO;
 
class Program
{
    static void Main()
    {
        string filePath = @"C:\path\to\your\file.txt";
 
        try
        {
            // 读取整个文件到一个字符串变量
            string content = File.ReadAllText(filePath);
 
            // 打印文件内容
            Console.WriteLine(content);
        }
        catch (FileNotFoundException)
        {
            Console.WriteLine("文件未找到,请检查文件路径是否正确。");
        }
        catch (IOException e)
        {
            Console.WriteLine("读取文件时发生错误: " + e.Message);
        }
    }
}

1.4 注意点

在写入文件之前,务必检查文件和目录是否存在,以避免不必要的错误。使用 try-catch 块来捕获并处理任何可能发生的异常,这是一个良好的编程实践。

二、写入txt文件内容

2.1 追加内容到文本文件

using System;
using System.IO;
 
class Program
{
    static void Main()
    {
        string filePath = @"C:\path\to\your\file.txt";
        string contentToAppend = "新添加的一行内容。\n";
        
        try
        {
            File.AppendAllText(filePath, contentToAppend);
            Console.WriteLine("内容已追加到文件。");
        }
        catch (IOException e)
        {
            Console.WriteLine("写入文件时发生错误: " + e.Message);
        }
    }
}

2.2 覆盖内容到文本文件

using System;
using System.IO;
 
class Program
{
    static void Main()
    {
        string filePath = @"C:\path\to\your\file.txt";
        string contentToWrite = "这是新的文件内容。\n";
        
        try
        {
            File.WriteAllText(filePath, contentToWrite);
            Console.WriteLine("文件内容已更新。");
        }
        catch (IOException e)
        {
            Console.WriteLine("写入文件时发生错误: " + e.Message);
        }
    }
}

2.3 注意点

在上述两个示例中,如果指定的文件路径不存在,File.WriteAllText和File.AppendAllText方法会创建一个新文件,并分别覆盖或追加内容。如果文件已经存在,它们会相应地写入或追加内容。

需要注意的是,这些方法会在没有提示的情况下覆盖现有文件的内容(File.WriteAllText),所以在使用时要小心,确保你了解这些操作的影响。

三、C++ 写入txt文件内容并追加内容

可以使用ofstream类来写入txt文件内容。若想追加内容,可以使用ios::app标志来创建输出流对象,然后在写入时将其设置为ios::app。以下是一个示例代码:

#include <iostream>
#include <fstream>
using namespace std;
 
int main() {
    ofstream out(""D:\\example.txt", ios::app);
	time_t now = time(nullptr);
	char timeStr[30];
	strftime(timeStr, sizeof(timeStr), "%Y-%m-%d %H:%M:%S", localtime(&now));
	out << timeStr << endl;
    out << "Hello, World!" << endl;
    out << "This is an example." << endl;
    out.close();
    return 0;
}

在这个例子中,我们创建了一个名为“example.txt”的输出流对象,并将其设置为ios::app。然后,我们写入了两行文本,并在文件末尾添加了它们。最后,我们关闭了输出流对象。

若想在文件开头追加内容,可以使用ios::ate标志来创建输出流对象。这将导致输出流对象自动跳过文件开头的内容,并将下一个写入操作添加到文件末尾。以下是一个示例代码:

#include <iostream>
#include <fstream>
using namespace std;
 
int main() {
    ofstream out(""D:\\example.txt", ios::ate | ios::out);
	time_t now = time(nullptr);
	char timeStr[30];
	strftime(timeStr, sizeof(timeStr), "%Y-%m-%d %H:%M:%S", localtime(&now));
	out << timeStr << endl;
    out << "This is an example." << endl;
    out << "Hello, World!" << endl;
    out.close();
    return 0;
}

在这个例子中,我们创建了一个名为“example.txt”的输出流对象,并将其设置为ios::ate | ios::out。然后,我们写入了两行文本,并在文件末尾添加了它们。最后,我们关闭了输出流对象。

以上就是C#读取与写入txt文件内容的实现方法的详细内容,更多关于C#读取与写入txt内容的资料请关注脚本之家其它相关文章!

相关文章

  • C#实现HTTP下载文件的方法

    C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • 基于NET Core 的Nuget包制作、发布和运用流程解析(完整过程)

    基于NET Core 的Nuget包制作、发布和运用流程解析(完整过程)

    这篇文章主要介绍了基于NET Core 的Nuget包制作、发布和运用流程,本文通过图文并茂的形式给大家介绍了Nuget包制作过程,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • C#将制定目录文件名转换成大写的方法

    C#将制定目录文件名转换成大写的方法

    这篇文章主要介绍了C#将制定目录文件名转换成大写的方法,涉及C#操作文件及字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • c# 接口interface基础入门小例子

    c# 接口interface基础入门小例子

    用于描述类的功能,类似于契约,指示了类将:执行的工作,形参类型,返回结果类型,但本身没有执行的代码
    2013-04-04
  • C#实现右键快捷菜单(上下文菜单)的两种方式

    C#实现右键快捷菜单(上下文菜单)的两种方式

    在C#中,ContextMenuStrip是一种用于创建右键菜单的控件,它提供了一种方便的方式来为特定的控件或窗体添加自定义的上下文菜单选项,有两种实现方式,文中介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • C#表达式目录树示例详解

    C#表达式目录树示例详解

    这篇文章主要给大家介绍了关于C#表达式目录树的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • unity制作瞄准镜效果

    unity制作瞄准镜效果

    这篇文章主要为大家详细介绍了unity制作瞄准镜效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • c# 泛型类型参数与约束的深入分析

    c# 泛型类型参数与约束的深入分析

    本篇文章是对c#中泛型类型参数与约束进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • WPF使用DrawingContext实现简单绘图

    WPF使用DrawingContext实现简单绘图

    这篇文章主要为大家详细介绍了WPF如何使用DrawingContext实现简单绘图,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以了解下
    2024-02-02
  • C# 使用Serilog日志框架的方法

    C# 使用Serilog日志框架的方法

    Serilog是一款配置方便,使用灵活的日志框架,这篇文章主要介绍了C# 使用Serilog日志框架,需要的朋友可以参考下
    2023-11-11

最新评论