MSDN程序員
抽象基類 Stream 支持讀取和寫入字節。Stream 集成了異步支持。其默認實現根據其相應的異步方法來定義同步讀取和寫入,反之亦然。算法
全部表示流的類都是從 Stream 類繼承的。Stream 類及其派生類提供數據源和儲存庫的通常視圖,使程序員沒必要了解操做系統和基礎設備的具體細節。編程
流涉及三個基本操做:數組
能夠從流讀取。讀取是從流到數據結構(如字節數組)的數據傳輸。緩存
能夠向流寫入。寫入是從數據源到流的數據傳輸。安全
流能夠支持查找。查找是對流內的當前位置進行的查詢和修改。網絡
根據基礎數據源或儲存庫,流可能只支持這些功能中的一部分。例如,NetworkStreams 不支持查找。Stream 的 CanRead、CanWrite 和 CanSeek 屬性及其派生類決定不一樣的流所支持的操做。數據結構
有關通用 I/O 任務的列表,請參見通用 I/O 任務。異步
注意 |
---|
Visual Basic 用戶能夠選擇使用由 My.Computer.FileSystem 對象提供的方法和屬性進行文件 I/O。有關更多信息,請參見 My.Computer.FileSystem 對象。socket |
Directory 提供經過目錄和子目錄進行建立、移動和枚舉的靜態方法。DirectoryInfo 類提供實例方法。
DirectoryInfo 提供經過目錄和子目錄進行建立、移動和枚舉的實例方法。Directory 類提供靜態方法。
DriveInfo 提供訪問有關驅動器的信息的實例方法。
File 提供用於建立、複製、刪除、移動和打開文件的靜態方法,並協助建立 FileStream。FileInfo 類提供實例方法。
FileInfo 提供用於建立、複製、刪除、移動和打開文件的實例方法,並協助建立 FileStream。File 類提供靜態方法。
FileStream 支持經過其 Seek 方法隨機訪問文件。默認狀況下,FileStream 以同步方式打開文件,但它也支持異步操做。File 包含靜態方法,而 FileInfo 包含實例方法。
FileSystemInfo 是 FileInfo 和 DirectoryInfo 的抽象基類。
Path 提供以跨平臺的方式處理目錄字符串的方法和屬性。
DeflateStream 提供使用 Deflate 算法壓縮和解壓縮流的方法和屬性。
GZipStream 提供壓縮和解壓縮流的方法和屬性。默認狀況下,此類使用與 DeflateStream 類相同的算法,但能夠擴展到使用其餘壓縮格式。
SerialPort 提供控制串行端口文件資源的方法和屬性。
File、FileInfo、DriveInfo、Path、Directory 和 DirectoryInfo 是密封(在 Microsoft Visual Basic 中爲 NotInheritable)類。能夠建立這些類的新實例,但它們不能有派生類。
BinaryReader 和 BinaryWriter 從 Streams 讀取或向 Streams 寫入編碼的字符串和基元數據類型。
StreamReader 經過使用 Encoding 進行字符和字節的轉換,從 Streams 中讀取字符。StreamReader 具備一個構造函數,該構造函數根據是否存在專用於 Encoding 的 preamble(例如一個字節順序標記)來嘗試肯定給定 Stream 的正確 Encoding 是什麼。
StreamWriter 經過使用 Encoding 將字符轉換爲字節,向 Streams 寫入字符。
StringReader 從 Strings 中讀取字符。StringReader 容許您用相同的 API 來處理 Strings,所以您的輸出能夠是 String 或以任何編碼表示的 Stream。
StringWriter 向 Strings 寫入字符。StringWriter 容許您用相同的 API 來處理 Strings,所以您的輸出能夠是 String 或以任何編碼表示的 Stream。
TextReader 是 StreamReader 和 StringReader 的抽象基類。抽象 Stream 類的實現用於字節輸入和輸出,而 TextReader 的實現用於 Unicode 字符輸出。
TextWriter 是 StreamWriter 和 StringWriter 的抽象基類。抽象 Stream 類的實現用於字節輸入和輸出,而 TextWriter 的實現用於 Unicode 字符輸出。
BufferedStream 是向另外一個 Stream(例如 NetworkStream)添加緩衝的 Stream。((FileStream 內部已具備緩衝,MemoryStream 不須要緩衝。)BufferedStream 能夠圍繞某些類型的流來構成以提升讀寫性能。緩衝區是內存中的字節塊,用於緩存數據,從而減小對操做系統的調用次數。
CryptoStream 將數據流連接到加密轉換。雖然 CryptoStream 是從 Stream 派生的,但它不屬於 System.IO 命名空間,而是在 System.Security.Cryptography 命名空間中。
MemoryStream 是一個非緩衝的流,能夠在內存中直接訪問它的封裝數據。該流沒有後備存儲,可用做臨時緩衝區。
NetworkStream 表示網絡鏈接上的 Stream。雖然 NetworkStream 是從 Stream 派生的,但它不屬於 System.IO 命名空間,而是在 System.Net.Sockets 命名空間中。
當在 System.IO 命名空間中使用類時,要使訪問被容許,則必須知足諸如訪問控制列表 (ACL) 等操做系統安全性要求。該要求是在全部 FileIOPermission 要求以外的要求。
注意 |
---|
能夠以編程方式管理 ACL。有關更多信息,請參見如何:添加或移除訪問控制列表項和 ACL 技術概述。 |
警告 |
---|
Internet 和 Intranet 的默認安全策略不容許訪問文件。所以,若是您在編寫將經過 Internet 下載的代碼,則不要使用常規的非隔離存儲 I/O 類。請改用獨立存儲。 |
警告 |
---|
當文件或網絡流打開時,只有在構造流時才執行安全檢查。所以,在將這些流分發給受信度較低的代碼或應用程序域時,請格外當心。 |