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

C#使用FileStream復(fù)制一個(gè)任意文件

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

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

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

我下面以一個(gè)圖片文件的復(fù)制為例講解。

在C盤新建一個(gè)畫圖文件,另存為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盤下生成一個(gè)和pic1一模一樣的圖片文件pic2.

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#去除DataTable重復(fù)數(shù)據(jù)的三種方法

    C#去除DataTable重復(fù)數(shù)據(jù)的三種方法

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

    C#中的延時(shí)函數(shù)sleep

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

    C#中對字符串進(jìn)行壓縮和解壓的實(shí)現(xiàn)

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

    C# Dynamic關(guān)鍵字之:dynamic為什么比反射快的詳解

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

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

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

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

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

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

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

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

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

    C# 中DateTime 的使用技巧匯總

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

    C#語言主要特性總結(jié)

    這篇文章主要介紹了C#語言主要特性總結(jié),本文總結(jié)了C#語言的簡單、現(xiàn)代、面向?qū)ο?、類型安全、相互兼容性、可伸縮性和可升級性等幾個(gè)主要特點(diǎn),需要的朋友可以參考下
    2015-02-02

最新評論