[C#]C# File文件处理 读文件

在C# 程序开发中,我们往往会遇到很多文件上传,文件写入等对于文件的操作业务需要开发,文件处理也是任何应用程序的重要组成部分。C# 有几种创建,读取,更新和删除文件的方法。本文主要介绍C# File文件处理 读文件。

1、读文件

相关文档:

C# File文件处理 创建和写文件
File 类 (System.IO) | Microsoft Learn

要读取文件,可以使用File.ReadAllLines()ReadAllText(String, Encoding)FileStream对象的Read()方法。例如,

1)File.ReadAllLines()

using System;
using System.IO;
using System.Text;
class Test
{
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";
        // 此文本只添加一次到文件中。
        if (!File.Exists(path))
        {
            // 创建一个要写入的文件。
            string[] createText = { "Hello", "And", "Welcome" };
            File.WriteAllLines(path, createText, Encoding.UTF8);
        }
        // 此文本总是被添加,使文件随着时间的推移而变长
        string appendText = "This is extra text" + Environment.NewLine;
        File.AppendAllText(path, appendText, Encoding.UTF8);
        // 打开要从中读取的文件。
        string[] readText = File.ReadAllLines(path, Encoding.UTF8);
        foreach (string s in readText)
        {
            Console.WriteLine(s);
        }
    }
}

2)ReadAllText(String, Encoding)

using System;
using System.IO;
using System.Text;
class Test
{
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";
        // 此文本只添加一次到文件中。
        if (!File.Exists(path))
        {
            //创建一个要写入的文件。
            string createText = "Hello and Welcome" + Environment.NewLine;
            File.WriteAllText(path, createText, Encoding.UTF8);
        }
        // 此文本总是被添加,使文件随着时间的推移而变长
        string appendText = "This is extra text" + Environment.NewLine;
        File.AppendAllText(path, appendText, Encoding.UTF8);
        // 打开要从中读取的文件。
        string readText = File.ReadAllText(path);
        Console.WriteLine(readText);
    }
}

3)FileStream对象的Read()方法

using System;
using System.IO;
using System.Text;
class Test
{
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";
        if (!File.Exists(path))
        {
            // 创建文件
            using (FileStream fs = File.Create(path))
            {
                Byte[] info = new UTF8Encoding(true).GetBytes("https://www.cjavapy.com");
                fs.Write(info, 0, info.Length);
            }
        }
        // 打开文件并读取
        using (FileStream fs = File.OpenRead(path))
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);
            while (fs.Read(b,0,b.Length) > 0)
            {
                Console.WriteLine(temp.GetString(b));
            }
        }
    }
}

2、C# File和fileinfo类

两个类功能差不多,File是静态方法实现的,Fileinfo通过实例方法实现的。FileInfo使用示例如下,

using System;
using System.IO;
class Test
{
    public static void Main()
    {
        string path = Path.GetTempFileName();
        var fi1 = new FileInfo(path);
        // 创建写入文件
        using (StreamWriter sw = fi1.CreateText())
        {
            sw.WriteLine("Hello");
            sw.WriteLine("And");
            sw.WriteLine("Welcome");
        }	
        // 打开读取文件
        using (StreamReader sr = fi1.OpenText())
        {
            var s = "";
            while ((s = sr.ReadLine()) != null)
            {
                Console.WriteLine(s);
            }
        }
        try
        {
            string path2 = Path.GetTempFileName();
            var fi2 = new FileInfo(path2);
            // 确保目标不存在。
            fi2.Delete();
            // 复制文件
            fi1.CopyTo(path2);
            Console.WriteLine($"{path} was copied to {path2}.");
            // 删除创建的文件
            fi2.Delete();
            Console.WriteLine($"{path2} was successfully deleted.");
        }
        catch (Exception e)
        {
            Console.WriteLine($"The process failed: {e.ToString()}");
        }
    }
}

3、使用FileInfo获取文件信息

FileInfo对象常用属性如下表,

属性

功能和用途

Attributes

返回和文件相关的属性值,运用了FileAttributes枚举类型值

CreationTime

返回文件的创建时间

Exists

检查文件是否存在于给定的目录中

Extension

返回文件的扩展名

LastAccessTime

返回文件的上次访问时间

FullName

返回文件的绝对路径

LastWriteTime

返回文件的上次写操作时间

Name

返回给定文件的文件名

Delete()

删除一个文件的方法,请务必谨慎地运用该方法

例如,

FileInfo fi = new FileInfo("E:\\cjavapy.txt");
Console.WriteLine("创建时间:" + fi.CreationTime.ToString() + "写入文件的时间" + fi.LastWriteTime + "访问的时间" + fi.LastAccessTime);
  • 29
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FL1768317420

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值