c#關於輸入輸出資料流的講解(5)

來源:互聯網
上載者:User

標籤:

一 .NET Framework 類庫的System.IO 命名空間     

System.IO 命名空間包含允許讀寫檔案和資料流的類型以及提供基本檔案和目錄支援的類型。


 二 C#檔案讀寫之FileStream

  1. (FileStream fs1 = File.Open("c://test.txt", FileMode.Open));

  FileMode.Open 直接用FileStream類開啟檔案c://test.txt"。

  2. (FileStream fs2 = File.Open("c://test.txt", FileMode.Append, FileAccess.Write));

  FileMode.Append,以追加的方式開啟檔案"c://test.txt",將某些內容寫到"c://test.txt"裡。

  3.(FileStream fs3 =File.Open("c://test.txt", FileMode.Truncate, FileAccess.ReadWrite, FileShare.Read)).

  FileMode.Truncate的意思是將檔案開啟清空裡面的內容後再對檔案進行操作。

  4. FileStream MyFileStream1 = new FileStream(@"c:/Testing.txt", FileMode.Create);

  這個方法的意思是建立一個可以讀寫的檔案,並且可以允許其他人讀取檔案的內容。

三  Stream是一個很大類的,在讀寫檔案的時候,可以通過不同的流進行專業的資料讀寫.

 

 下面的代碼是利用輸入輸出資料流實現stream 和byte之間的轉換

public byte[] StreamToBytes(Stream stream) 

    byte[] bytes = new byte[stream.Length]; 
    stream.Read(bytes, 0, bytes.Length); 
    // 設定當前流的位置為流的開始 
    stream.Seek(0, SeekOrigin.Begin); 
    return bytes; 


/// 將 byte[] 轉成 Stream 

public Stream BytesToStream(byte[] bytes) 

    Stream stream = new MemoryStream(bytes); 
    return stream; 



/// 將 Stream 寫入檔案 

public void StreamToFile(Stream stream,string fileName) 

    // 把 Stream 轉換成 byte[] 
    byte[] bytes = new byte[stream.Length]; 
    stream.Read(bytes, 0, bytes.Length); 
    // 設定當前流的位置為流的開始 
    stream.Seek(0, SeekOrigin.Begin); 
    // 把 byte[] 寫入檔案 
    FileStream fs = new FileStream(fileName, FileMode.Create); 
    BinaryWriter bw = new BinaryWriter(fs); 
    bw.Write(bytes); 
    bw.Close(); 
    fs.Close(); 


/// 從檔案讀取 Stream 

public Stream FileToStream(string fileName) 
{             
    // 開啟檔案 
    FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); 
    // 讀取檔案的 byte[] 
    byte[] bytes = new byte[fileStream.Length]; 
    fileStream.Read(bytes, 0, bytes.Length); 
    fileStream.Close(); 
    // 把 byte[] 轉換成 Stream 
    Stream stream = new MemoryStream(bytes); 
    return stream; 


     byte[] bytes = System.Text.UTF8Encoding.UTF8.GetBytes(XmlContent); 

  string XmlContent = System.Text.UTFEncoding.UTF8.GetString(bytes);

從字串到流Stream

byte[] buffer = System.Text.Encoding.Unicode.GetBytes("faint"); 
MemoryStream stream = new MemoryStream(buffer);

MemoryStream ms = new MemoryStream(System.Text.Encoding.Default.GetBytes(AObjStr));

 

c#關於輸入輸出資料流的講解(5)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.