程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#--I/O流操作二進制文件之BinaryWriter類和BinartReader類

C#--I/O流操作二進制文件之BinaryWriter類和BinartReader類

編輯:C#入門知識

使用I/O流操作二進制文件時要用到BinaryWriter類和BinartReader類




1.BinaryWriter類

BinaryWriter類以二進制形式將基元類型寫入流,並支持用特定的編碼寫入字符串。


常用的方法:

Close 關閉當前的BinaryWriter和基礎流

Seek 設置當前流中的位置

Write 將值寫入當前流




2.BinartReader類

BinartReader類用特定的編碼將基元數據類型讀作二進制值。


常用的方法:

Close 關閉當前閱讀器及基礎流

Read 從基礎流中讀取字符,並提升流的當前位置

ReadBytes 從當前流將count個字節讀入字節數組,並使當前位置提升count個字節

ReadInt32 從當前流中讀取4個字節有符號整數,並使流的當前位置提升4個字節

ReadString 從當前流讀取一個字符串。字符串有長度前綴,一次7為地被編碼為整數




3.實例代碼:演示如何對二進制文件進行寫入和讀取

        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == string.Empty)
            {
                MessageBox.Show("要寫入的文件內容不能為空");
            }
            else
            {
                //設置保存文件的格式
                saveFileDialog1.Filter = "二進制文件(*.dat)|*.dat";
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    //使用“另存為”對話框中輸入的文件名實例化FileStream對象
                    FileStream myStream = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                    //使用FileStream對象實例化BinaryWriter二進制寫入流對象
                    BinaryWriter myWriter = new BinaryWriter(myStream);
                    //以二進制方式向創建的文件中寫入內容
                    myWriter.Write(textBox1.Text);
                    //關閉當前二進制寫入流
                    myWriter.Close();
                    //關閉當前文件流
                    myStream.Close();
                    textBox1.Text = string.Empty;
                }
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //設置打開文件的格式
            openFileDialog1.Filter = "二進制文件(*.dat)|*.dat";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = string.Empty;
                //使用“打開”對話框中選擇的文件名實例化FileStream對象
                FileStream myStream = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
                //使用FileStream對象實例化BinaryReader二進制寫入流對象
                BinaryReader myReader = new BinaryReader(myStream);
                if (myReader.PeekChar() != -1)
                {
                    //以二進制方式讀取文件中的內容
                    textBox1.Text = myReader.ReadString();
                }
                //關閉當前二進制讀取流
                myReader.Close();
                //關閉當前文件流
                myStream.Close();
            }
        }


  1. 上一頁:
  2. 下一頁: