天天看點

FileStream的讀取和寫入

使用 FileStream 類對檔案系統上的檔案進行讀取、寫入、打開和關閉操作,并對其他與檔案相關的作業系統句柄進行操作,如管道、标準輸入和标準輸出。讀寫操作可以指定為同步或異步操作。FileStream 對輸入輸出進行緩沖,進而提高性能。

 先看代碼,後面講解:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;//注意,必不可少

namespace WasteIndustry {

    public partial class Form3 : Form {

        public Form3() {

            InitializeComponent();

 /*

 * C# Program

 * Author:神舟龍

 * Email: [email protected]

 */

        }

        private void Form3_Load(object sender, EventArgs e) {

            //建立一個文本檔案,并執行個體化一個檔案流

            FileStream MyFileStream1 = new FileStream(@"D:\Test.text",FileMode.Create);

            FileInfo MyFiles = new FileInfo(@"D;\Test.text");

            //執行個體化一個隻讀檔案流

            FileStream MyFileStream2 = MyFiles.OpenRead();

            //設定檔案流為隻寫權限

            MyFileStream2 = MyFiles.OpenWrite();

            //設定檔案流的打開方式為追加模式,隻讀權限,不共享

            MyFileStream2 = MyFiles.Open(FileMode.Append,FileAccess.Read,FileShare.None);

            //建立檔案

            MyFileStream2 = MyFiles.Create();

            //從檔案中讀取位元組

            int MyBytes = MyFileStream1.ReadByte();

            //定義數組長度

            int NumberOFBytes = 20;

            //byte類型數組

            byte[] MyByteArray = new byte[NumberOFBytes];

            //從檔案中讀取20個位元組放入數組中

            int BytesRead = MyFileStream1.Read(MyByteArray,0,NumberOFBytes);

            //定義一個位元組

            byte MyWriteByte = 100;

            //向檔案中寫入一個位元組

            MyFileStream1.WriteByte(MyWriteByte);

            int NumberOfBytesToWrite = 256;

            //定義byte類型數組

            byte[] MyWriteByteArray=new Byte[NumberOfBytesToWrite];

            //循環向byte類型的數組中插入byte值

            for (int i = 0; i < 256; i++) {

                MyWriteByteArray[i]=(byte)i;

                i++;

            }

            //向流中寫入數組内容

            MyFileStream1.Write(MyWriteByteArray,0,NumberOfBytesToWrite);

            //關閉流

            MyFileStream1.Close();

            MyFileStream2.Close();

    }

}

MyFileStream1對象,使用指定路徑和建立模式執行個體化,建立模式FileMode是一個枚舉類型,它還包括:

Append

可以打開現有的檔案并查找的檔案尾部,FileMode.Append隻能與FileAcces.Write(寫權限)一起使用

Create

建立新檔案,如果檔案存在則覆寫,沒有則建立

CreateNew

建立新檔案,有的話,出現異常

Open

打開現有的檔案,如果有打開,不存在檔案就會引發異常

如果存在檔案則打開,不存在則建立

MyFileStream2對象,用FileInfo執行個體化,FileInfo方法有open,openreade,opentext,create,createtext。

檔案流的讀取(read)與寫入(write);

read

定義一個byte類型的數組,設定數組的長度,read方法就是在檔案中從0開始讀取,讀取20個位元組數,然後替換到數組中

  //定義數組長度

定義一個byte類型的數組,設定數組的長度,并通過循環想byte數組中寫入位元組,通過write方法把數組中的值從0位置開始向流中寫入内容;

本文轉自shenzhoulong  51CTO部落格,原文連結:http://blog.51cto.com/shenzhoulong/495120,如需轉載請自行聯系原作者

繼續閱讀