首頁  >  文章  >  後端開發  >  .net 串流-使用串流進行檔案複製

.net 串流-使用串流進行檔案複製

黄舟
黄舟原創
2017-02-24 10:44:081521瀏覽

       與Java中的各種檔案流,網路流類似,.net中也有各類流。流的主要用途就是與應用程式外部的檔案或資料來源進行資料互動。基類為Stream,定義在命名空間System.IO下;

 一,使用流進行一次性的複製寫入

                    

   

    之後是我們的程式碼:

     


 二,循環分批的複製


  為了測試下面這段程式碼,建議找個大點兒的文件啥滴。

   

#region 使用流进行一次性复制

            //创建一个文件流对象(参数一:指定了文件的位置;参数二:枚举值,指定操作系统打开文件的方式;参数三:表明了打开文件的意图;注意第二个参数与第三个参数要注意搭配使用)
              Stream source = new FileStream(@"C:/Users/v-liuhch/Desktop/StreamTest.txt", FileMode.Open, FileAccess.Read);
                byte[] buffer = new byte[source.Length];
            //将文件数据写入到字节数组中(参数一:要写入的字节数组; 参数二:用于设定文件从哪个位置开始读取;参数三:读取的字节数)
                int byteRead = source.Read(buffer, 0, (int)source.Length);//返回值为读取到的字节数
                //foreach (var b in buffer)
                //{
                //   // Console.WriteLine(Convert.ToString(b, 2));//二进制
                //    //Console.WriteLine(Convert.ToString(b, 10));//十进制
                //    Console.WriteLine(Convert.ToString(b, 16).ToUpper());//十六进制
                //}
                //Console.ReadKey();


                //将文件写入StreamTarget.txt
                using (Stream target = new FileStream(@"C:/Users/v-liuhch/Desktop/StreamTarget.txt", FileMode.Create, FileAccess.Write))
                {
                    target.Write(buffer, 0, buffer.Length);
                }
                
                source.Dispose();


            #endregion

PS:建議使用using;

對大檔案採取分割讀取的方式還是比較科學滴,類似大檔案上傳的原理。




 以上就是.net 流-使用串流進行檔案複製的內容,並有更多相關內容請關注PHP.php.com!








陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn