C#利用File方法對(duì)文件的操作總結(jié)(字節(jié)寫入和讀取)
C#文件的讀和寫提供了非常多的方法基本一兩行就可以搞定“讀和寫”,在編程里還是比較重要的
什么是讀?
你的程序去讀你磁盤里的文件
上面是寫?
你的程序在你磁盤創(chuàng)建文件
有什么用?
可以保存數(shù)據(jù),用戶等2次打開(kāi)時(shí)就不用重新加載,或者軟件異常,把異常信息或日志信息等進(jìn)行保存
@符作用:
路徑使用是字符串類型,而路徑有非常多的“ \”
而如\n表示的是換行,為了不讓這些“\”起到轉(zhuǎn)義的意思
在路徑前使用@表示這字符串并不需要其轉(zhuǎn)義
所以寫路徑必須得在前面加@符號(hào),或者使用
兩個(gè)“\\”代替 如:““E:\\1.txt””
如果路徑特別長(zhǎng)…不建議這樣(簡(jiǎn)直就是腦血栓)
創(chuàng)建文件:
在E盤創(chuàng)建了一個(gè)名為1.txt的文本文件
File.Create(@"E:\1.txt");

創(chuàng)建成功
刪除文件:
刪除E盤下的1.txt文件
File.Delete(@"1.txt");
判斷文件是否存在:
返回的是一個(gè)布爾值
bool a = File.Exists(@"E:\1.txt");
true 為存在
false 為不存在
和英語(yǔ)考試的判斷題一樣,對(duì)就T 錯(cuò)的就F…

上面把他刪了,所以就不存在,false
也可以這樣寫:
if (File.Exists(@"D:\1.txt"))
{
Console.Write("文件存在");
}
else {
Console.Write("文件不存在");
}
復(fù)制文件:

把學(xué)習(xí)資料從E盤復(fù)制到D盤
File.Copy(@"E:\學(xué)習(xí)資料.zip",@"D:\學(xué)習(xí)資料.zip");

復(fù)制成功
移動(dòng)文件:
所謂的移動(dòng)也就是剪切的意思
File.Move(@"D:\1.txt", @"E:\1.txt");
D盤剪切到E盤

成功
寫入:
C#提供了很多的寫入方法,
都大同小異都寫入的方式不一樣而已
WriteAllText:直接寫入
File.WriteAllText(@"E:\1.txt","6666");
把6666寫入到E盤的1.txt里

注意:如果文件不存在就自動(dòng)創(chuàng)建并且寫入,還是比較方便的只有一行
WriteAllBytes:字節(jié)形式寫入
string str = "小馬哥的棺材板"; //創(chuàng)建寫入的字符串 byte[] a = Encoding.Default.GetBytes(str); //字符串轉(zhuǎn)成字節(jié) File.WriteAllBytes(@"E:\1.txt",a); //寫入
Encoding:表示編碼格式
Default:默認(rèn)編碼
GetBytes:轉(zhuǎn)成字節(jié)

寫入成功?。?/p>
WriteAllLines:行的形式寫入

需要注意的是第2個(gè)參數(shù)是一個(gè)字符串類型的數(shù)組
string[] a = { "1","2","3","4","5"};
File.WriteAllLines(@"E:\1.txt",a);
寫入成功

AppendAllText:追加寫入
上面的方法都是覆蓋的寫入,一般寫日志文件都是使用追加寫入
這樣就不會(huì)覆蓋了
原文本內(nèi)容:

File.AppendAllText(@"E:\1.txt", "6666");
追加寫入后:

可以注意到并沒(méi)有換行,如果數(shù)據(jù)多了不好看
可以使用轉(zhuǎn)義符進(jìn)行換行
File.AppendAllText(@"E:\1.txt", "6666"+"\r\n");
效果:

居然可以寫入文件當(dāng)然也可以讀取
讀取:
Encoding:表示編碼格式
Default:默認(rèn)編碼
ReadAllText:讀取文本:
string str = File.ReadAllText(@"E:\1.txt", Encoding.Default); Console.WriteLine(str);

讀取成功??!
ReadAllLines:行的方式讀取
string[] str = File.ReadAllLines(@"E:\1.txt", Encoding.Default); //編碼格式默認(rèn)
for (int i = 0; i <= str.Length - 1; i++)
{
Console.WriteLine(str[i]);
}

每一個(gè)元素代表一行
如果我只想拿到第一行的內(nèi)容:
string[] str = File.ReadAllLines(@"E:\1.txt", Encoding.Default); Console.WriteLine(str[0]);

ReadAllBytes:字節(jié)形式讀取
byte[] a = File.ReadAllBytes(@"E:\1.txt"); //讀取文件轉(zhuǎn)成字節(jié) string str = Encoding.Default.GetString(a); //把字節(jié)轉(zhuǎn)成字符串 Console.WriteLine(str);

以上就是File類的常用方法了
總結(jié)
到此這篇關(guān)于C#利用File方法對(duì)文件操作的文章就介紹到這了,更多相關(guān)C#用File方法對(duì)文件操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WPF實(shí)現(xiàn)動(dòng)畫效果(七)之演示圖板
這篇文章介紹了WPF實(shí)現(xiàn)動(dòng)畫效果之演示圖板,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
基于C#的UDP協(xié)議的同步通信實(shí)現(xiàn)代碼
本篇文章主要介紹了基于C#的UDP協(xié)議的同步實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
C#使用QRCode生成海報(bào)圖并嵌入定位帶logo的二維碼
這篇文章主要為大家詳細(xì)介紹了C#如何使用QRCode生成海報(bào)圖并嵌入定位帶logo的二維碼,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考下2024-03-03
Windows系統(tǒng)中C#讀寫ini配置文件的程序代碼示例分享
這篇文章主要介紹了C#讀寫ini配置文件的程序代碼示例分享,在Windows下可以利用Win32的API函數(shù)輕松實(shí)現(xiàn),需要的朋友可以參考下2016-04-04
c#基礎(chǔ)系列之System.String的深入理解
這篇文章主要給大家介紹了關(guān)于c#基礎(chǔ)系列之System.String的深入理解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
C#利用delegate實(shí)現(xiàn)Javascript的each方法
這篇文章主要為大家介紹了介紹了C#利用delegate實(shí)現(xiàn)Javascript的each方法,感興趣的朋友可以參考一下2016-01-01
C#中async await異步關(guān)鍵字用法和異步的底層原理全解析
這篇文章主要介紹了C#中async await異步關(guān)鍵字用法和異步的底層原理全解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-04-04

