using (FileStream outStream = new FileStream(@"D:/12.txt", FileMode.Open)) { using (FileStream fs = new FileStream(@"D:/1.txt", FileMode.Open)) { //緩沖區(qū)太小的話,速度慢而且傷硬盤 //聲明一個4兆字節(jié)緩沖區(qū)大小,比如迅雷也有一個緩沖區(qū),如果沒有緩沖區(qū)的話, //每下載一個字節(jié)都要往磁盤進行寫,非常傷磁盤,所以,先往內(nèi)存的緩沖區(qū)寫字節(jié),當(dāng) //寫夠了一定容量之后,再往磁盤進行寫操作,減低了磁盤操作。 byte[] bytes = new byte[100]; int readBytes; //第二個參數(shù)Offset表示當(dāng)前位置的偏移量,一般都傳0 fs.Seek(100, SeekOrigin.Current); if ((readBytes = fs.Read(bytes, 0, bytes.Length)) > 0) //讀取的位置自動往后挪動。 { //readBytes為實際讀到的byte數(shù),因為最后一次可能不會讀滿。 if (outStream.CanSeek == true) outStream.Seek(100, SeekOrigin.Current); outStream.Write(bytes, 8, readBytes-10);//8為偏移量,10為數(shù)量 } } }
新聞熱點
疑難解答