<span id="plx27"><var id="plx27"></var></span>
<dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>
  • 歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
    裝配圖網(wǎng)
    ImageVerifierCode 換一換
    首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

    《C#面向?qū)ο蟪绦蛟O(shè)計(jì)》第11章用流進(jìn)行文件輸入和輸出

    • 資源ID:248196082       資源大?。?span id="9x3fvlz" class="font-tahoma">580KB        全文頁數(shù):31頁
    • 資源格式: PPT        下載積分:15積分
    快捷下載 游客一鍵下載
    會(huì)員登錄下載
    微信登錄下載
    三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
    二維碼
    微信掃一掃登錄
    下載資源需要15積分
    郵箱/手機(jī):
    溫馨提示:
    用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
    支付方式: 支付寶    微信支付   
    驗(yàn)證碼:   換一換

     
    賬號(hào):
    密碼:
    驗(yàn)證碼:   換一換
      忘記密碼?
        
    友情提示
    2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
    3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
    4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
    5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

    《C#面向?qū)ο蟪绦蛟O(shè)計(jì)》第11章用流進(jìn)行文件輸入和輸出

    單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,第,11,章 用流進(jìn)行文件輸入和輸出,主要內(nèi)容與學(xué)習(xí)目標(biāo),11.1,文件與流,11.2,內(nèi)存和緩沖流,11.3 StreamReader,和,StreamWriter,11.4,二進(jìn)制讀取器和寫出器,11.5,序列化對(duì)象,11.6,可視化繼承,11.7,順序訪問文件,11.8,隨機(jī)存取文件,11.9,使用序列化對(duì)象存儲(chǔ)數(shù)據(jù),主要內(nèi)容與學(xué)習(xí)目標(biāo),主要內(nèi)容:,(1),文件與流的概念。,(2),使用,FileStream,。,(3),將圖像文件存入數(shù)據(jù)庫、從數(shù)據(jù)庫讀取,Image,類型數(shù)據(jù)并以圖像文件保存。,(4),使用,FileStream.Seek,方法隨機(jī)訪問文件。,(5),向文件追加數(shù)據(jù)。,(6),內(nèi)存和緩沖流、從指定的,MemoryStream,對(duì)象創(chuàng)建,Image,對(duì)象。,(7)StreamReader,和,StreamWriter,。,(8)BinaryReader,和,BinaryWriter,。,(9),序列化對(duì)象。,(10,可視化繼承。,(11),順序訪問文件。,(12),隨機(jī)存取文件。,(13),使用序列化對(duì)象存儲(chǔ)數(shù)據(jù)。,學(xué)習(xí)目標(biāo):,(1),對(duì)文件進(jìn)行新建、讀、寫和更新操作。,(2),熟悉,StreamReader,和,StreamWriter,的使用。,(3),熟悉,BinaryReader,和,BinaryWriter,的使用。,(4),熟悉,MemoryStream,的使用。,(5),理解序列化和采用序列化從文件讀出對(duì)象及從文件寫入對(duì)象。,(6),熟悉順序訪問和隨機(jī)訪問文件處理。,11.1,文件與流,文件是永久存儲(chǔ)的由一些特定順序的字節(jié)組成的一個(gè)有序的、具有名稱的集合。因此,對(duì)于文件,人們常會(huì)想到目錄路徑、磁盤存儲(chǔ)、文件和目錄名等方面。流提供一種向后備存儲(chǔ)器寫入字節(jié)和從后備存儲(chǔ)器讀取字節(jié)的方式,后備存儲(chǔ)器是一個(gè)存儲(chǔ)媒介,例如磁盤或內(nèi)存。正如除磁盤外存在多種后備存儲(chǔ)器一樣,除文件流之外也存在多種流。例如,還存在網(wǎng)絡(luò)流、內(nèi)存流等。,Stream,類及其派生類提供這些不同類型的輸入和輸出的一般視圖。,所有表示流的類都是從,Stream,類繼承的。,Stream,是所有流的抽象基類,所以它的對(duì)象不能被實(shí)例化。,Stream,對(duì)象具有以下一種或多種能力。,讀:將數(shù)據(jù)從一個(gè)流傳輸?shù)揭粋€(gè)數(shù)據(jù)結(jié)構(gòu),(,如字節(jié)數(shù)組,),中。,寫:將數(shù)據(jù)從一個(gè)數(shù)據(jù)結(jié)構(gòu)寫到一個(gè)流中。,定位:查詢和修改流中的當(dāng)前位置。,11.1.1 FileStream,11.1.2,隨機(jī)訪問文件,11.1.3,向文件追加數(shù)據(jù),11.1.1 FileStream,FileStream,類繼承于,Stream,類,它主要用于文件的輸入和輸出。,任務(wù),11.1,:使用,FileStream,解決方案:,(1),新建一空項(xiàng)目,Testfilestream,。,(2),向項(xiàng)目中添加代碼文件,(3),添加引用,System.Windows.Forms,。,(4),按,F5,鍵編譯并運(yùn)行應(yīng)用程序,輸出結(jié)果,如圖,11.1,所示,。,任務(wù),11.2,:將圖像文件存入數(shù)據(jù)庫,解決方案:,(1),創(chuàng)建一,Windows,應(yīng)用程序項(xiàng)目,將項(xiàng)目的名稱命名為,TestIO,。,(2),向,Windows,窗體上添加一命令按鈕,button1,,將該按鈕的,Text,屬性設(shè)置為“選擇圖像存入數(shù)據(jù)庫”,然后向窗體添加一文件對(duì)話框控件,openFileDialog1,。,(3),在窗體類,Form1,的前面添加如下語句:,(4),雙擊,【,選擇圖像存入數(shù)據(jù)庫,】,按鈕,在該按鈕的,Click,事件中編寫代碼:,(5),測(cè)試代碼。按,F5,鍵編譯并運(yùn)行應(yīng)用程序,單擊,【,選擇圖像存入數(shù)據(jù)庫,】,按鈕,在出現(xiàn)的對(duì)話框中,(,如圖,11.2,所示,),,選擇一圖像文件,單擊,【,打開,】,按鈕,如果圖像文件存入數(shù)據(jù)庫,則出現(xiàn),如圖,11.3,所示,的消息框。,任務(wù),11.3,:從數(shù)據(jù)庫讀取,Image,類型數(shù)據(jù)并保存為圖像文件,解決方案:,(1),在,D,盤中創(chuàng)建“,sh”,目錄。,(2),打開前一個(gè)示例創(chuàng)建的,TestIO,項(xiàng)目,在解決方案資源管理器中雙擊,Form1.cs,,打開,Windows,窗體,再向,Windows,窗體中添加一個(gè),button,按鈕,將其,text,屬性設(shè)置為“讀取數(shù)據(jù)存入文件”。,(3),雙擊,【,讀取數(shù)據(jù)存入文件,】,按鈕,在其,Click,事件處理程序中輸入如下代碼:,(4),測(cè)試代碼。按,F5,鍵編譯并運(yùn)行應(yīng)用程序,單擊,【,讀取數(shù)據(jù)存入文件,】,按鈕,如果從數(shù)據(jù)庫讀取的圖像數(shù)據(jù)存入指定的圖像文件成功,則出現(xiàn),如圖,11.4,所示,的消息框。在,D,盤創(chuàng)建的,sh,目錄中可看到,myimage.gif,圖像文件。,圖,11.1,程序運(yùn)行結(jié)果,圖,11.2,打開文件對(duì)話框,圖,11.3,消息框,圖,11.4,消息框,11.1.2,隨機(jī)訪問文件,當(dāng)打開一個(gè)流時(shí),流指針一般位于流的第一個(gè)字節(jié)上。大多數(shù)流支持定位,(seek),,也就可以將內(nèi)部流指針移到任意位置。因此當(dāng)我們要在讀操作和寫操作之間進(jìn)行轉(zhuǎn)換時(shí),可以通過定位避免關(guān)閉和打開流,也就是不必采用“創(chuàng)建寫關(guān)閉打開讀關(guān)閉”模式。,FileStream,對(duì)象支持使用,Seek,方法隨機(jī)訪問文件。,Seek,方法允許把讀,/,寫位置移動(dòng)到文件內(nèi)的任何位置。這是通過字節(jié)偏移參考點(diǎn)參數(shù)來完成的。字節(jié)偏移量是相對(duì)于查找參考點(diǎn)而言的,該參考點(diǎn)可以是基礎(chǔ)文件的開始、當(dāng)前位置或結(jié)尾,分別由,SeekOrigin,類的,3,個(gè)屬性,Begin(,指定流的開頭,),、,Current(,指定流內(nèi)的當(dāng)前位置,),、,End(,指定流的結(jié)尾,),表示。,任務(wù),11.4,:定位操作,解決方案:,(1),將任務(wù),11.1,代碼文件修改,(2),按,F5,鍵編譯并運(yùn)行應(yīng)用程序,輸出結(jié)果,如圖,11.5,所示,。,圖,11.5,定位操作,11.1.3,向文件追加數(shù)據(jù),任務(wù),11.5,:向文件追加數(shù)據(jù),(1),將,任務(wù),11.4,中的代碼文件修改,(2),按,F5,鍵編譯并運(yùn)行應(yīng)用程序,輸出結(jié)果,如圖,11.7,所示,。由輸出結(jié)果可知已向文件追加了,5,個(gè)字符,abcde,圖,11.7,追加數(shù)據(jù),11.2,內(nèi)存和緩沖流,與,FileStream,一樣,,MemoryStream,類和,BufferedStream,類也派生自抽象的,Stream,類。因此,MemoryStream,類和,BufferedStream,類共享許多性質(zhì)和功能。設(shè)計(jì)它們的目的都是為了對(duì)內(nèi)存進(jìn)行數(shù)據(jù)讀寫,而不是對(duì)持久性存儲(chǔ)進(jìn)行讀寫。如果需要,它們都可與另一種流,(,比如一個(gè)文件,),相關(guān)聯(lián),因此它們可充當(dāng)內(nèi)存和持久性存儲(chǔ)之間的緩沖區(qū)。,MemoryStream,類提供了,WriteTo(,用于向另一個(gè)流進(jìn)行寫操作,),等方法。同樣,,BufferedStream,對(duì)象一般在進(jìn)行構(gòu)造時(shí)與另一個(gè)流相關(guān)聯(lián),并且當(dāng)你關(guān)閉,BufferedStream,時(shí)它的內(nèi)容被刷新到相關(guān)聯(lián)的流。,任務(wù),11.6,:顯示圖像,主要知識(shí)點(diǎn):使用,SqlCommand,數(shù)據(jù)命令對(duì)象從數(shù)據(jù)庫中檢索數(shù)據(jù)。從數(shù)據(jù)讀取器對(duì)象讀取字段值。創(chuàng)建,MemoryStream,對(duì)象。從指定的,MemoryStream,對(duì)象創(chuàng)建,Image,對(duì)象。,問題描述:,創(chuàng)建,如圖,11.8,所示,的應(yīng)用程序,當(dāng)單擊,【,顯示圖像,】,按鈕時(shí),從數(shù)據(jù)庫中讀取圖像,文件數(shù)據(jù),將其圖像顯示在窗體的圖像框中。,我們使用,SqlCommand,數(shù)據(jù)命令對(duì)象從數(shù)據(jù)庫中檢索數(shù)據(jù),并將檢索數(shù)據(jù)到的數(shù)據(jù)存放于數(shù)據(jù)讀取器,(SqlDataReader),對(duì)象,再?gòu)臄?shù)據(jù)讀取器對(duì)象讀取字段,picture,的值,將其存放到字節(jié)數(shù)組中,然后以字節(jié)數(shù)組作為參數(shù)創(chuàng)建,MemoryStream,對(duì)象。再調(diào)用,Image.FromStream,方法以,MemoryStream,對(duì)象作為參數(shù)創(chuàng)建,Image,對(duì)象,最后將創(chuàng)建的,Image,對(duì)象賦給圖像框的,Image,屬性。,圖,11.8,從數(shù)據(jù)創(chuàng)建圖像對(duì)象,11.3 StreamReader,和,StreamWriter,FileStream,適合于讀取原始字節(jié),(,二進(jìn)制,),數(shù)據(jù),如果你希望處理字符數(shù)據(jù),那么,StreamReader,和,StreamWriter,等類更適合。這些類在后臺(tái)使用一個(gè),FileStream,對(duì)象,關(guān)閉,StreamReader,和,StreamWriter,也就關(guān)閉了底層的,FileStream,。,StreamReader,和,StreamWriter,使你得以從文件讀取字符順序流或?qū)⒆址樞蛄鲗懭胛募小?StreamReader,和,StreamWriter,類鏡像,BinaryReader,和,BinaryWriter,類的功能,但它們以文本而不是二進(jìn)制形式讀取和寫入信息。,任務(wù),11.7,:電話號(hào)碼簿,主要知識(shí)點(diǎn):將文本寫入文件。在現(xiàn)有文件中添加文本。讀取文本文件。從文件中讀取一行。,問題描述:創(chuàng)建,如圖,11.9,所示,的應(yīng)用程序,當(dāng)單擊,【,添加,】,按鈕時(shí),將文本框中輸入的數(shù)據(jù),(,姓名和電話,),寫入文件,當(dāng)單擊,【,顯示,】,按鈕時(shí),讀文件并將結(jié)果顯示在文本框中。,解決方案:,(1),創(chuàng)建項(xiàng)目和窗體。,選擇,【,文件,】|【,新建,】|【,項(xiàng)目,】,命令,打開,【,新建項(xiàng)目,】,對(duì)話框。,在,【,項(xiàng)目類型,】,窗格中單擊,【Visual C#,項(xiàng)目,】,,然后單擊,【,模板,】,窗格中的,【W(wǎng)indows,應(yīng)用程序,】,。,在,【,名稱,】,文本框中,輸入“,TestStreamWriter”,,然后單擊,【,確定,】,按鈕。,Visual Studio,將該項(xiàng)目添加到解決方案資源管理器中,,Windows,窗體設(shè)計(jì)器隨即打開。,將,表,11.1,中的控件添加到窗體中,并給其屬性設(shè)置相應(yīng)的值。,(2),編寫寫入文件和讀取文件代碼。,(3),測(cè)試代碼。按,F5,鍵編譯該應(yīng)用程序,在文本框中輸入的數(shù)據(jù),(,姓名和電話,),,單擊,【,添加,】,按鈕,然后單擊,【,顯示,】,按鈕,觀察程序運(yùn)行結(jié)果。,圖,11.9,電話號(hào)碼簿程序,表,11.1,屬性表,11.4,二進(jìn)制讀取器和寫出器,類,BinaryReader(,二進(jìn)制讀取器,),用于讀取字符串和基本數(shù)據(jù)類型,類,BinaryWriter(,二進(jìn)制寫出器,),用于寫入二進(jìn)制文件。,任務(wù),11.8,:學(xué)生名冊(cè),主要知識(shí)點(diǎn),;,將基本數(shù)據(jù)類型的數(shù)據(jù)以二進(jìn)制數(shù)據(jù)形式寫入文件,(,寫入二進(jìn)制文件,),。在文件中讀取以二進(jìn)制數(shù)據(jù)保存的基本數(shù)據(jù)類型的值,(,讀取二進(jìn)制文件,),。,問題描述:創(chuàng)建,如圖,11.10,所示,的應(yīng)用程序,當(dāng)單擊,【,添加,】,按鈕時(shí),將文本框中輸入的數(shù)據(jù),(,姓名、年齡和平均成績(jī),),寫入二進(jìn)制文件,當(dāng)單擊,【,顯示,】,按鈕時(shí),讀二進(jìn)制文件并將結(jié)果顯示在文本框中。,圖,11.10,學(xué)生名冊(cè)程序,11.5,序列化對(duì)象,序列化是將對(duì)象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^程。與序列化相對(duì)的是反序列化,它將流轉(zhuǎn)換為對(duì)象。這兩個(gè)過程結(jié)合起來,就使得數(shù)據(jù)能夠被輕松地存儲(chǔ)和傳輸。,可以使用,Serializable,屬性將類標(biāo)記為可序列化,在可序列化的類中使用,NonSerialized,屬性標(biāo)記成員變量,來防止這些成員變量被序列化。,實(shí)際上,序列化就是利用格式化程序如二進(jìn)制格式化程序,BinaryFormatter,的,Serialize,方法將類的值轉(zhuǎn)換為一個(gè)一般的,(,即連續(xù)的,),字節(jié)流,然后將這個(gè)流寫到磁盤文件或任何其他流化目標(biāo)上。利用利用格式化程序如,BinaryFormatter,的,Deserialize,方法,可對(duì)象還原回其以前的狀態(tài)。,任務(wù),11.9,:序列化對(duì)象,主要知識(shí)點(diǎn):聲明可序列化類。序列化對(duì)象。反序列化對(duì)象。,問題描述:創(chuàng)建一可序列化的,person,類,然后將該類的實(shí)例序列化到

    注意事項(xiàng)

    本文(《C#面向?qū)ο蟪绦蛟O(shè)計(jì)》第11章用流進(jìn)行文件輸入和輸出)為本站會(huì)員(dfg****19)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

    溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




    關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

    copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

    備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


    本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

    欧美久久久一区二区三区,国产精品亚洲一区二区无码,亚洲国产精品综合久久20声音,亚洲国产精品无码久久久蜜芽
    <span id="plx27"><var id="plx27"></var></span>
    <dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>