C# (File方法)对文件的操作,字节写入和读取

简介: C# (File方法)对文件的操作,字节写入和读取

C#文件的读和写提供了非常多的方法基本一两行就可以搞定“读和写”,在编程里还是比较重要的

什么是读?

你的程序去读你磁盘里的文件

上面是写?

你的程序在你磁盘创建文件

有什么用?

可以保存数据,用户等2次打开时就不用重新加载,或者软件异常,把异常信息或日志信息等进行保存

@符作用:

路径使用是字符串类型,而路径有非常多的“ \”

而如\n表示的是换行,为了不让这些“\”起到转义的意思

在路径前使用@表示这字符串并不需要其转义

所以写路径必须得在前面加@符号,或者使用

两个“\\”代替 如:““E:\\1.txt””

如果路径特别长…不建议这样(简直就是脑血栓)


创建文件:

在E盘创建了一个名为1.txt的文本文件

File.Create(@"E:\1.txt");

创建成功


删除文件:

删除E盘下的1.txt文件

File.Delete(@"1.txt");

判断文件是否存在:

返回的是一个布尔值

bool a = File.Exists(@"E:\1.txt");

true 为存在

false 为不存在

和英语考试的判断题一样,对就T 错的就F…

上面把他删了,所以就不存在,false

也可以这样写:

if (File.Exists(@"D:\1.txt"))
{
  Console.Write("文件存在");
  }
  else {
Console.Write("文件不存在");
 }

复制文件:

把学习资料从E盘复制到D盘

File.Copy(@"E:\学习资料.zip",@"D:\学习资料.zip");

复制成功


移动文件:

所谓的移动也就是剪切的意思

File.Move(@"D:\1.txt", @"E:\1.txt");

D盘剪切到E盘

成功


写入:

C#提供了很多的写入方法,

都大同小异都写入的方式不一样而已

WriteAllText:直接写入

File.WriteAllText(@"E:\1.txt","6666");

把6666写入到E盘的1.txt里

注意:如果文件不存在就自动创建并且写入,还是比较方便的只有一行

WriteAllBytes:字节形式写入

string str = "小马哥的棺材板";
  //创建写入的字符串
 byte[] a = Encoding.Default.GetBytes(str);
 //字符串转成字节
 File.WriteAllBytes(@"E:\1.txt",a);
 //写入

Encoding:表示编码格式

Default:默认编码

GetBytes:转成字节

写入成功!!

WriteAllLines:行的形式写入

需要注意的是第2个参数是一个字符串类型的数组

string[] a  = { "1","2","3","4","5"};
 File.WriteAllLines(@"E:\1.txt",a);

写入成功

AppendAllText:追加写入

上面的方法都是覆盖的写入,一般写日志文件都是使用追加写入

这样就不会覆盖了

原文本内容:

File.AppendAllText(@"E:\1.txt", "6666");

追加写入后:

可以注意到并没有换行,如果数据多了不好看

可以使用转义符进行换行

File.AppendAllText(@"E:\1.txt", "6666"+"\r\n");

效果:

居然可以写入文件当然也可以读取


读取:

Encoding:表示编码格式

Default:默认编码

ReadAllText:读取文本:

string str = File.ReadAllText(@"E:\1.txt", Encoding.Default);
 Console.WriteLine(str);       

读取成功!!

ReadAllLines:行的方式读取

string[] str = File.ReadAllLines(@"E:\1.txt", Encoding.Default); //编码格式默认
 for (int i = 0; i <= str.Length - 1; i++)
 {
Console.WriteLine(str[i]);
}

每一个元素代表一行

如果我只想拿到第一行的内容:

string[] str = File.ReadAllLines(@"E:\1.txt", Encoding.Default);              
 Console.WriteLine(str[0]);   

ReadAllBytes:字节形式读取

byte[] a = File.ReadAllBytes(@"E:\1.txt");
//读取文件转成字节
 string str = Encoding.Default.GetString(a);
 //把字节转成字符串
Console.WriteLine(str);

以上就是File类的常用方法了

相关文章
|
1月前
|
C#
基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
基于 C# 编写的 Visual Studio 文件编码显示与修改扩展插件
|
2月前
|
JSON 程序员 C#
使用 C# 比较两个对象是否相等的7个方法总结
比较对象是编程中的一项基本技能,在实际业务中经常碰到,比如在ERP系统中,企业的信息非常重要,每一次更新,都需要比较记录更新前后企业的信息,直接比较通常只能告诉我们它们是否指向同一个内存地址,那我们应该怎么办呢?分享 7 个方法给你!
|
2月前
|
C# UED SEO
C# 异步方法async / await任务超时处理
通过使用 `Task.WhenAny`和 `Task.Delay`方法,您可以在C#中有效地实现异步任务的超时处理机制。这种方法允许您在指定时间内等待任务完成,并在任务超时时采取适当的措施,如抛出异常或执行备用操作。希望本文提供的详细解释和代码示例能帮助您在实际项目中更好地处理异步任务超时问题,提升应用程序的可靠性和用户体验。
113 3
|
3月前
|
存储 C#
【C#】大批量判断文件是否存在的两种方法效率对比
【C#】大批量判断文件是否存在的两种方法效率对比
69 1
|
3月前
|
C#
C#的方法的参数传递
C#的方法的参数传递
40 0
|
3月前
|
数据可视化 程序员 C#
C#中windows应用窗体程序的输入输出方法实例
C#中windows应用窗体程序的输入输出方法实例
71 0
|
2月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
53 3
|
1月前
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
104 12
|
2月前
|
设计模式 C# 图形学
Unity 游戏引擎 C# 编程:一分钟浅谈
本文介绍了在 Unity 游戏开发中使用 C# 的基础知识和常见问题。从 `MonoBehavior` 类的基础用法,到变量和属性的管理,再到空引用异常、资源管理和性能优化等常见问题的解决方法。文章还探讨了单例模式、事件系统和数据持久化等高级话题,旨在帮助开发者避免常见错误,提升游戏开发效率。
94 4
|
4月前
|
API C#
C# 一分钟浅谈:文件系统编程
在软件开发中,文件系统操作至关重要。本文将带你快速掌握C#中文件系统编程的基础知识,涵盖基本概念、常见问题及解决方法。文章详细介绍了`System.IO`命名空间下的关键类库,并通过示例代码展示了路径处理、异常处理、并发访问等技巧,还提供了异步API和流压缩等高级技巧,帮助你写出更健壮的代码。
63 2