C#中File和FileStream的簡(jiǎn)單介紹和用法
前言
在近期的工作過(guò)程中發(fā)現(xiàn)自己的基礎(chǔ)比較薄弱,所以最近在惡補(bǔ)基礎(chǔ)知識(shí)。下面就對(duì)我所學(xué)習(xí)的File類和FileStream進(jìn)行簡(jiǎn)單的總結(jié)。
1.首先先介紹File類和FileStream文件流
1.1 File類,是一個(gè)靜態(tài)類,支持對(duì)文件的基本操作,包括創(chuàng)建,拷貝,移動(dòng),刪除和打開一個(gè)文件。File類方法的參量很多時(shí)候都是路徑path。主要提供有關(guān)文件的各種操作,在使用時(shí)需要引用System.IO命名空間。
1.2 FileStream文件流 只能處理原始字節(jié)(raw byte)。FileStream 類可以用于任何數(shù)據(jù)文件,而不僅僅是文本文件。FileStream 對(duì)象可以用于讀取諸如圖像和聲音的文件,F(xiàn)ileStream讀取出來(lái)的是字節(jié)數(shù)組,然后通過(guò)編碼轉(zhuǎn)換將字節(jié)數(shù)組轉(zhuǎn)換成字符串。
1.3 區(qū)別:file:是一個(gè)文件的類,對(duì)文件進(jìn)行操作的;filestream:文件流.對(duì)txt,xml等文件寫入內(nèi)容的時(shí)候需要使用的一個(gè)工具.打個(gè)形象的比喻.file是筆記本,需要filestream的這個(gè)筆才能寫.
2.代碼部分
2.1 File類創(chuàng)建Txt
string path = @"C:\Users\Administrator\Desktop\1.txt"; File.Open(path, FileMode.OpenOrCreate);
2.2 File類Txt拼接內(nèi)容
List<string> users = new List<string>();
users.Add("張三|1000");
users.Add("李四|10000");
users.Add("王五|5000");
users.Add("趙六|6000");
File.AppendAllLines(path, users, Encoding.Default);
2.3 File類字節(jié)形式讀取txt文檔
byte[] buttf = File.ReadAllBytes(path); string str = Encoding.Default.GetString(buttf, 0, buttf.Length);
2.4 File類實(shí)現(xiàn)txt員工工資加倍
string[] filestr = File.ReadAllLines(path, Encoding.Default);
for (int i = 0; i < filestr.Length; i++)
{
string[] str = filestr[i].Split('|');
filestr[i] = str[0] + "|" + (Convert.ToDouble(str[1]) * 2).ToString();
}
File.AppendAllLines(path, filestr, Encoding.Default);
2.5 File類常用方法

3.文件流
3.1文件流文字形式讀取
byte[] bytsize = new byte[1024 * 1024 * 5];
using (FileStream stream = new FileStream(path, FileMode.OpenOrCreate,FileAccess.ReadWrite))
{
while (true)
{
int r = stream.Read(bytsize, 0, bytsize.Length);
//如果讀取到的字節(jié)數(shù)為0,說(shuō)明已到達(dá)文件結(jié)尾,則退出while循
if (r == 0)
{
break;
}
string str = Encoding.Default.GetString(bytsize, 0, r);
Console.WriteLine(str);
}
}
3.2文件流文字形式寫入
string str = "今天天氣好晴朗,處處好風(fēng)光";
byte[] buttf = Encoding.Default.GetBytes(str);
//文件流的寫入
using (FileStream fscreat = new FileStream(path, FileMode.Append, FileAccess.Write))
{
fscreat.Write(buttf, 0, buttf.Length);
}
3.3文件流視頻形式復(fù)制
byte[] bytsize = new byte[1024 * 1024 * 5];
string videoPath = @"C:\Users\Administrator\Desktop\1、練習(xí)1-3.avi";
string videoNewPath = @"C:\Users\Administrator\Desktop\1.avi";
//創(chuàng)建讀取流
using (FileStream fsread=new FileStream(videoPath,FileMode.Open,FileAccess.Read))
{
//創(chuàng)建寫入流
using (FileStream fswrite=new FileStream(videoNewPath,FileMode.OpenOrCreate,FileAccess.Write))
{
while (true)
{
//返回實(shí)際讀取到的字節(jié)
int r = fsread.Read(bytsize, 0, bytsize.Length);
//當(dāng)字節(jié)位0的時(shí)候 證明已經(jīng)讀取結(jié)束
if(r==0){
break;
}
fswrite.Write(bytsize,0,r);
}
}
}
因?yàn)閯傞_始學(xué)習(xí)所以有些不足,希望各位大佬可以指正。
總結(jié)
到此這篇關(guān)于C#中File和FileStream的簡(jiǎn)單介紹和用法的文章就介紹到這了,更多相關(guān)C#中File和FileStream用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#中GridView動(dòng)態(tài)添加列的實(shí)現(xiàn)方法
這篇文章主要介紹了C#中GridView動(dòng)態(tài)添加列的實(shí)現(xiàn)方法,涉及C#中GridView的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
C#高性能動(dòng)態(tài)獲取對(duì)象屬性值的步驟
這篇文章主要介紹了C#高性能動(dòng)態(tài)獲取對(duì)象屬性值的步驟,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2020-12-12
驗(yàn)證碼的三個(gè)常見(jiàn)漏洞和修復(fù)方法
這篇文章主要介紹了驗(yàn)證碼的三個(gè)常見(jiàn)漏洞和修復(fù)方法,本文講解了把驗(yàn)證碼存儲(chǔ)在Cookie中、沒(méi)有進(jìn)行非空判斷、沒(méi)有及時(shí)銷毀驗(yàn)證碼三個(gè)常見(jiàn)問(wèn)題和解決方法,需要的朋友可以參考下2015-03-03
C#爬取動(dòng)態(tài)網(wǎng)頁(yè)上信息得流程步驟
動(dòng)態(tài)內(nèi)容網(wǎng)站使用 JavaScript 腳本動(dòng)態(tài)檢索和渲染數(shù)據(jù),爬取信息時(shí)需要模擬瀏覽器行為,否則獲取到的源碼基本是空的,這篇文章主要給大家詳細(xì)介紹了C#爬取動(dòng)態(tài)網(wǎng)頁(yè)上信息得流程步驟,需要的朋友可以參考下2024-10-10

