欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用FileStream復制一個任意文件

 更新時間:2019年05月04日 09:30:05   作者:CGGUANG  
這篇文章主要為大家詳細介紹了C#使用FileStream復制一個任意文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下

FileStream,顧名思義,文件流。流,是字節(jié)流。我的理解是,硬盤上存在一個字節(jié)流,內存里也有一個字節(jié)流,它們是對應的。程序運行時,我們只能對內存里的字節(jié)流直接操作,在它被關閉的時候,它的內容自動寫入硬盤上的相應字節(jié)流。
復制一個文件的基本思路是:逐一讀取原文件流的字節(jié),逐一寫入新文件流中。分別用到文件流的ReadByte()和WriteByte()方法。這里要注意的是,讀取時以字節(jié)為單位,一個字節(jié)如下圖所示

是一個0和1組合的序列。ReadByte()讀取一個字節(jié)后將這個序列求值,返回的是整形數值。如果讀到文件的盡頭了,不能成功讀取字節(jié)了,返回的是-1。這個設計是非常合理的。因為只要是個字節(jié),總是能求出它大于或等于0的值的。沒有字節(jié)了,就返回-1了。這樣的話,可以把-1作為循環(huán)讀取終止的標志。

我下面以一個圖片文件的復制為例講解。

在C盤新建一個畫圖文件,另存為png格式,文件名pic1。

然后執(zhí)行以下代碼:

using System;
using System.IO;
 
namespace Demo
{
class Program {
 public static void Main(string[] args)
  {
 FileStream fs1 = new FileStream("c:/pic1.png",FileMode.Open);//FileAccess is dispensable.
   //FileAccess is the extra contract. 
 FileStream fs2 = new FileStream("c:/pic2.png",FileMode.Create);
 int d;
 byte b;
 while( ( d = fs1.ReadByte() ) != -1 )
 {
 b = (byte)d;
 fs2.WriteByte( b );
  }
 fs1.Close();
 fs2.Close();
 Console.Write("Press any key to continue . . . ");
 Console.ReadKey(true);
  }
    }
} 

會在c盤下生成一個和pic1一模一樣的圖片文件pic2.

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C#去除DataTable重復數據的三種方法

    C#去除DataTable重復數據的三種方法

    這篇文章主要介紹了C#去除DataTable重復數據的三種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • C#中的延時函數sleep

    C#中的延時函數sleep

    這篇文章主要介紹了C#中的延時函數sleep用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • C#中對字符串進行壓縮和解壓的實現

    C#中對字符串進行壓縮和解壓的實現

    本文主要介紹了C#中對字符串進行壓縮和解壓的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • C# Dynamic關鍵字之:dynamic為什么比反射快的詳解

    C# Dynamic關鍵字之:dynamic為什么比反射快的詳解

    本篇文章是對C#中dynamic為什么比反射快進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C#中BitmapImage與BitmapSource接口的區(qū)別對比小結

    C#中BitmapImage與BitmapSource接口的區(qū)別對比小結

    BitmapImage和BitmapSource都可以用于表示和顯示圖像,本文就來介紹一下C#中BitmapImage與BitmapSource接口的區(qū)別對比,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 詳解C# 線程的掛起與喚醒

    詳解C# 線程的掛起與喚醒

    這篇文章主要介紹了詳解C# 線程的掛起與喚醒,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-05-05
  • C#使用HtmlAgilityPack組件解析html文檔

    C#使用HtmlAgilityPack組件解析html文檔

    這篇文章介紹了C#使用HtmlAgilityPack組件解析html文檔的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C#遍歷文件夾后上傳文件夾中所有文件錯誤案例分析

    C#遍歷文件夾后上傳文件夾中所有文件錯誤案例分析

    這篇文章主要介紹了C#遍歷文件夾后上傳文件夾中所有文件的實現方法,需要的朋友可以參考下
    2015-10-10
  • C# 中DateTime 的使用技巧匯總

    C# 中DateTime 的使用技巧匯總

    本文主要介紹了DateTime的使用技巧,包括獲取本周、上周、下周、本月、上個月、下個月、本季度、上季度、下季度、本年度、上年度、下年度等多個方法,分享給大家,希望對大家有所幫助。
    2016-04-04
  • C#語言主要特性總結

    C#語言主要特性總結

    這篇文章主要介紹了C#語言主要特性總結,本文總結了C#語言的簡單、現代、面向對象、類型安全、相互兼容性、可伸縮性和可升級性等幾個主要特點,需要的朋友可以參考下
    2015-02-02

最新評論