概念
提供字节序列的通用视图。这是一个抽象类。
子类:
Microsoft.JScript.COMCharStream
System.Data.OracleClient.OracleBFile
System.Data.OracleClient.OracleLob
System.Data.SqlTypes.SqlFileStream
System.IO.BufferedStream
System.IO.FileStream
System.IO.MemoryStream
System.IO.UnmanagedMemoryStream
System.IO.Compression.BrotliStream
System.IO.Compression.DeflateStream
System.IO.Compression.GZipStream
System.IO.IsolatedStorage.IsolatedStorageFileStream
System.IO.Pipes.PipeStream
System.Net.Security.AuthenticatedStream
System.Net.Sockets.NetworkStream
System.Printing.PrintQueueStream
System.Security.Cryptography.CryptoStream
示例
FileStream对象将文件从一个目录异步复制到另一个目录。
Button 事件处理程序具有 async 修饰符标记,因为它调用异步方法。
using System; using System.Threading.Tasks; using System.Windows; using System.IO; namespace WpfApplication { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private async void Button_Click(object sender, RoutedEventArgs e) { string StartDirectory = @"c:\Users\exampleuser\start"; string EndDirectory = @"c:\Users\exampleuser\end"; foreach (string filename in Directory.EnumerateFiles(StartDirectory)) { using (FileStream SourceStream = File.Open(filename, FileMode.Open)) { using (FileStream DestinationStream = File.Create(EndDirectory + filename.Substring(filename.LastIndexOf('\\')))) { await SourceStream.CopyToAsync(DestinationStream); } } } } } }
Stream所有流的抽象基类。
流是字节序列的抽象,例如文件、输入/输出设备、进程中通信管道或 TCP/IP 套接字。
Stream类及其派生类提供这些不同类型的输入和输出的一般视图,并将程序员与操作系统和基础设备的具体详细信息隔离开来。
流涉及三个基本操作:
-
读取是将数据从流传输到数据结构(如字节数组)中。
-
写入是指将数据从数据结构传输到流中。
-
例如,网络流没有当前位置的统一概念,因此通常不支持查找。
MemoryStream。
CanSeek属性查询流的功能。
Length和属性来查询和修改流的当前位置和长度。
IDisposable 接口主题中的“使用实现 IDisposable 的对象”一节。