stream的seek方法實例


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM