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类的常用方法了

相关文章
|
26天前
|
监控 安全 C#
使用C#如何监控选定文件夹中文件的变动情况?
使用C#如何监控选定文件夹中文件的变动情况?
85 19
|
21天前
|
编译器 C# Windows
C#基础:手动编译一个.cs源代码文件并生成.exe可执行文件
通过上述步骤,应该能够高效准确地编译C#源代码并生成相应的可执行文件。此外,这一过程强调了对命令行编译器的理解,这在调试和自动化编译流程中是非常重要的。
35 2
|
16天前
|
C#
C# async await 异步执行方法
C# async await 异步执行方法
27 0
|
17天前
|
C# 图形学 数据安全/隐私保护
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
Unity数据加密☀️ 二、使用Rider将C#代码生成DLL文件
|
18天前
|
C#
C# 写日志文件
C# 写日志文件
26 0
|
18天前
|
C# 图形学
小功能⭐️C#控制小数点后位数的方法
小功能⭐️C#控制小数点后位数的方法
|
25天前
|
C#
WPF/C#:数据绑定到方法
WPF/C#:数据绑定到方法
27 0
|
4月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
155 3
|
4月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
171 3
|
27天前
|
存储 C#
揭秘C#.Net编程秘宝:结构体类型Struct,让你的数据结构秒变高效战斗机,编程界的新星就是你!
【8月更文挑战第4天】在C#编程中,结构体(`struct`)是一种整合多种数据类型的复合数据类型。与类不同,结构体是值类型,意味着数据被直接复制而非引用。这使其适合表示小型、固定的数据结构如点坐标。结构体默认私有成员且不可变,除非明确指定。通过`struct`关键字定义,可以包含字段、构造函数及方法。例如,定义一个表示二维点的结构体,并实现计算距离原点的方法。使用时如同普通类型,可通过实例化并调用其成员。设计时推荐保持结构体不可变以避免副作用,并注意装箱拆箱可能导致的性能影响。掌握结构体有助于构建高效的应用程序。
46 7