最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

文件讀取流和寫入流

2023-04-02 00:36 作者:此城過客  | 我要投稿

當文件很大時,內(nèi)容很多時,對文件的復制、寫入,就不能再用以前的方法了。

對于大文件,得用流。

流,就相當于是管子,水管。

比如,要把一個碗的水,轉(zhuǎn)放到另一個碗中去,你只需要把碗拿起來倒,就好了;可是,要把一個缸中的水,轉(zhuǎn)存到另一個缸中,我們不可能把缸端起來倒,那樣不現(xiàn)實。我們可以用一根水管,慢慢的輸送。

那么流,就相當于是這根水管。

FileStream readFileStream = new FileStream(@"C:\Users\Administrator\Desktop\坦克大戰(zhàn).rar",FileMode.Open,FileAccess.Read);

? ? ? ? ? ? readFileStream.ReadByte();//讀取一個字節(jié)

FileStream writeFileStream = new FileStream(@"C:\Users\Administrator\Desktop\坦克大戰(zhàn)1.rar",FileMode.Create,FileAccess.Write);

? ? ? ? ? ? writeFileStream.WriteByte();//寫入一個字節(jié)


||或者可以邊讀邊寫:

? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?int nextByte = -1;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? while ((nextByte = readFileStream.ReadByte()) != -1)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?writeFileStream.WriteByte((Byte)nextByte);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???}


寫入完了之后,要關(guān)閉流,相當于是把水管撤掉。

順序是,先開的后關(guān);后開的,先關(guān)。就等于是那個流離你最近,你先關(guān)哪個。

writeFileStream.Close();

readFileStream.Close();


||優(yōu)化讀取和寫入——把水管增粗

一次讀寫一個字節(jié),有點太慢了,雖然不能一次全讀寫完,但每次只讀寫一個,也太慢了。

要把水管增粗。

ReadByte方法,是一次讀取一個字節(jié)

Read方法,是一次可以讀取很多個字節(jié)。具體多少由自己定。

writeFileStream.Write(buffer,0,count);//buffer表示把這個數(shù)組里面的數(shù)據(jù)寫入

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//0表示從0這個索引開始寫入

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???//寫入count個數(shù)據(jù),


具體語句如下:

FileStream?readFileStream?=?new?FileStream(@"C:\Users\Administrator\Desktop\坦克大戰(zhàn).rar",FileMode.Open,FileAccess.Read);

? ? ? ? ? ??readFileStream.ReadByte();//讀取一個字節(jié)

FileStream?writeFileStream?=?new?FileStream(@"C:\Users\Administrator\Desktop\坦克大戰(zhàn)1.rar",FileMode.Create,FileAccess.Write);


int length = 1024;

byte[] buffer = new byte[1024];

int count = -1;

while ((count = readFileStream.Read(buffer,0,1024)) != 0)

{

? ? ? ? ?writeFileStream.Write(buffer,0,count);

}

writeFileStream.Close();

readFileStream.Close();

DateTime after = DateTime.Now;//結(jié)束后的時間點

TimeSpan ts=after.Subtract(before);//把結(jié)束時間點,和開始時間點相減,得到過程時長

Console.WriteLine(ts.TotalMilliseconds);//TotalMilliseconds是總的毫秒,

文件讀取流和寫入流的評論 (共 條)

分享到微博請遵守國家法律
吉林省| 石阡县| 丽水市| 宜昌市| 新郑市| 莱芜市| 宁波市| 丰城市| 汾阳市| 迁西县| 泽普县| 丘北县| 孟州市| 太仓市| 柯坪县| 阳城县| 波密县| 巨野县| 太仆寺旗| 彭水| 筠连县| 无棣县| 西城区| 平武县| 四子王旗| 滁州市| 沙雅县| 昆山市| 禹城市| 吐鲁番市| 仙游县| 宁南县| 长治市| 博罗县| 白沙| 广河县| 阿拉善左旗| 临潭县| 隆子县| 河西区| 永康市|