此主题尚未评级 - 评价此主题

FileStream 类

2013/12/13

公开以文件为主的 Stream,既支持同步读写操作,也支持异步读写操作。

Namespace:  System.IO
程序集:  mscorlib(位于 mscorlib.dll 中)
public class FileStream : Stream

FileStream 类型公开以下成员。

  名称说明
公共方法FileStream(String, FileMode)使用指定的路径和创建模式初始化 FileStream 类的新实例。
公共方法FileStream(String, FileMode, FileAccess)使用指定的路径、创建模式和读/写权限初始化 FileStream 类的新实例。
公共方法FileStream(String, FileMode, FileAccess, FileShare)使用指定的路径、创建模式、读/写权限和共享权限创建 FileStream 类的新实例。
公共方法FileStream(String, FileMode, FileAccess, FileShare, Int32)用指定的路径、创建模式、读/写及共享权限和缓冲区大小初始化 FileStream 类的新实例。
返回顶部
  名称说明
公共属性CanRead获取一个值,该值指示当前流是否支持读取。 (重写 Stream.CanRead。)
公共属性CanSeek获取一个值,该值指示当前流是否支持查找。 (重写 Stream.CanSeek。)
公共属性CanTimeout获取一个确定当前流能否超时的值。 (从 Stream 继承。)
公共属性CanWrite获取一个值,该值指示当前流是否支持写入。 (重写 Stream.CanWrite。)
公共属性Length获取用字节表示的流长度。 (重写 Stream.Length。)
公共属性Name获取传递给构造函数的文件流的名称。
公共属性Position获取或设置此流的当前位置。 (重写 Stream.Position。)
公共属性ReadTimeout获取或设置一个值(以毫秒为单位),该值确定流在超时前尝试读取多长时间。 (从 Stream 继承。)
公共属性WriteTimeout获取或设置一个值(以毫秒为单位),该值确定流在超时前尝试写入多长时间。 (从 Stream 继承。)
返回顶部
  名称说明
公共方法BeginRead开始异步读。 (重写 Stream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)。)
公共方法BeginWrite开始异步写入。 (重写 Stream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)。)
公共方法Close关闭当前流并释放与当前流关联的任何资源(如套接字和文件句柄)。 (从 Stream 继承。)
公共方法CopyTo(Stream)从当前流读取所有字节并向目标流写入它们。 (从 Stream 继承。)
公共方法CopyTo(Stream, Int32)从当前流读取所有字节并使用指定缓冲区大小向目标流写入它们。 (从 Stream 继承。)
公共方法CopyToAsync(Stream)从当前流异步读取字节并向另一个流写入它们。 (从 Stream 继承。)
公共方法CopyToAsync(Stream, Int32)从当前流异步读取字节并使用指定缓冲区大小向另一个流写入它们。 (从 Stream 继承。)
公共方法CopyToAsync(Stream, Int32, CancellationToken)从当前流异步读取字节并使用指定缓冲区大小和取消标记向另一个流写入它们。 (从 Stream 继承。)
公共方法Dispose()释放由 Stream 使用的所有资源。 (从 Stream 继承。)
受保护的方法Dispose(Boolean)释放 FileStream 占用的非托管资源,也可以选择释放托管资源。 (重写 Stream.Dispose(Boolean)。)
公共方法EndRead等待挂起的异步读取完成。 (重写 Stream.EndRead(IAsyncResult)。)
公共方法EndWrite结束异步写入,在 I/O 操作完成之前一直阻止。 (重写 Stream.EndWrite(IAsyncResult)。)
公共方法Equals(Object)确定指定的 Object 是否等于当前的 Object (从 Object 继承。)
受保护的方法Finalize确保垃圾回收器回收 FileStream 时释放资源并执行其他清理操作。 (重写 Object.Finalize()。)
公共方法Flush()清除此流的所有缓冲区,使得所有缓冲的数据都写入到文件系统中。 (重写 Stream.Flush()。)
公共方法Flush(Boolean)清除此流的缓冲区,将所有缓冲的数据都写入到文件中,另外也清除所有中间文件缓冲区。
公共方法FlushAsync()异步清除该流的所有缓冲区,并使所有缓冲的数据都写入基础设备。 (从 Stream 继承。)
公共方法FlushAsync(CancellationToken)异步清除该流的所有缓冲区,使所有缓冲的数据都写入基础设备,并监视取消请求。 (从 Stream 继承。)
公共方法GetHashCode用作特定类型的哈希函数。 (从 Object 继承。)
公共方法GetType获取当前实例的 Type (从 Object 继承。)
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法Read从流读取字节块并将数据写入给定的缓冲区。 (重写 Stream.Read(Byte[], Int32, Int32)。)
公共方法ReadAsync(Byte[], Int32, Int32)从当前流异步读取字节序列,并将流中的位置向前移动读取的字节数。 (从 Stream 继承。)
公共方法ReadAsync(Byte[], Int32, Int32, CancellationToken)从当前流中异步读取字节序列,在该流中按照读取的字节数向前移动位置,并监视取消请求。 (从 Stream 继承。)
公共方法ReadByte从文件读取一个字节,读取位置向前移动一个字节。 (重写 Stream.ReadByte()。)
公共方法Seek设置该流的当前位置为给定值。 (重写 Stream.Seek(Int64, SeekOrigin)。)
公共方法SetLength将该流的长度设置为给定值。 (重写 Stream.SetLength(Int64)。)
公共方法ToString返回一个字符串,它表示当前的对象。 (从 Object 继承。)
公共方法Write使用缓冲区的数据向该流写入字节块。 (重写 Stream.Write(Byte[], Int32, Int32)。)
公共方法WriteAsync(Byte[], Int32, Int32)将字节序列异步写入当前流,并将流的当前位置向前移动写入的字节数。 (从 Stream 继承。)
公共方法WriteAsync(Byte[], Int32, Int32, CancellationToken)将一个字节序列异步写入当前流,使流中的当前位置向前移动所写入的字节数,并监视取消请求。 (从 Stream 继承。)
公共方法WriteByte向文件流的当前位置写入一个字节。 (重写 Stream.WriteByte(Byte)。)
返回顶部
  名称说明
公共扩展方法AsInputStream将 适用于 Windows 商店应用的 .NET 中的托管流转换到 Windows 运行时 中的输入流。 (由 WindowsRuntimeStreamExtensions 定义。)
公共扩展方法AsOutputStream将 适用于 Windows 商店应用的 .NET 中的托管流转换到 Windows 运行时 中的输出流。 (由 WindowsRuntimeStreamExtensions 定义。)
返回顶部

版本说明

Windows Phone

此类型的存在是为了支持 Windows Phone 中的 .NET Compact Framework 基础结构,并不适用于应用程序代码。

下面的示例显示从用户的“我的图片”文件夹随机选取的一个图像。它将使用 DirectoryInfo 类来获取一个代表具有 .jpg 或 .png 扩展名的文件的 FileInfo 对象的可枚举集合。该集合用于构建 List<T> 集合,以便可以使用索引来选择一个与随机编号相对应的文件。

然后,该示例通过使用 FileStream 类来创建一个位图图像,并将其设置为 Image 控件(名为 MyImage)的源。有关如何编译和运行此示例代码的信息,请参见生成具有静态 Windows Phone TextBlock 控件的示例


private void LoadImage()
{

	DirectoryInfo di = new DirectoryInfo(Environment.GetFolderPath(
		Environment.SpecialFolder.MyPictures));

	var files = from f in di.EnumerateFiles()
				where f.Extension.ToLower() == ".jpg" || 
					f.Extension == ".png"
				select f;

	int max = files.Count() + 1;

	Random rnd = new Random();
	int r = rnd.Next(0, max);

	List<FileInfo> pics = new List<FileInfo>(files);

	string randpic = pics[r].FullName;

	BitmapImage img = new BitmapImage();
	img.SetSource(new FileStream(randpic, FileMode.Open));

	MyImage.Source = img;

	
}


Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

此类型的所有公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

本文是否对您有所帮助?
(1500 个剩余字符)
感谢您的反馈
显示:
© 2014 Microsoft. 版权所有。