FileStream类
FileStream(文件流) 这个类主要用于二进制文件中读写,也可以使用它读写任何文件。
StreamReader
(流读取器)和StreamWriter
(流写入器)专门用于读写文本文件
使用FileStream
读写二进制文件:FileStream
实例用于读写文件中的数据,要构造FileStream实例,需要提供下面的4中信息:
- 要访问的文件
一般提供一个文件的完整路径名 - 表示如何打开文件的模式
新建文件或打开一个现有文件,如果打开一个现有的文件,写入操作是覆盖文件原来的内容,还是追加到文件的末尾? - 表示访问文件的方式
只读、只写、还是读写 - 共享访问
表示是否独占访问文件,如果允许其他流同时访问文件,则这些流是只读 只写 还是读写文件
构造函数的参数:
- FileMode( 打开模式) Append,Create,CreateNew,Open,OpenOrCreate和Truncate
- FileAccess(读取还是写入) Read,ReadWrite和Write
- FileShare(文件共享设置) Delete,Inheritable,None,Read,ReadWrite和Write
PS:
如果文件不存在Append Open
和Truncate
会抛出异常, 如果文件存在 CreateNew
会抛出异常; Create
和 OpenOrCreate
:Create
会删除现有的文件,新建一个空的文件,OpenOrCreate
会判断当前是否有文件,没有的话才会创建;文章来源:https://www.toymoban.com/news/detail-403876.html
注意事项:
当我们使用完了一个流之后,一定要调用fs.Close();
方法去关闭流,关闭流会释放与它相关联的资源,允许其他应用程序为同一个文件设置流。这个操作也会刷新缓冲区。文章来源地址https://www.toymoban.com/news/detail-403876.html
示例代码
using System;
using System.IO;
using System.Text;
namespace CSharpDemo
{
class Programma
{
static void Main(string[] args)
{
string path = @"E:\MyTest.txt";
if (File.Exists(path)) // 校验文件是否存在
{
File.Delete(path);
}
// 创建并写入文件
using (FileStream fs_write = File.Create(path))
{
byte[] info = new UTF8Encoding(true).GetBytes("123");
fs_write.Write(info, 0, info.Length);
byte[] info1 = new UTF8Encoding(true).GetBytes("456789");
fs_write.Write(info1, 0, info1.Length);
}
// 读取文件
using (FileStream fs_read = File.OpenRead(path))
{
byte[] byteArr = new byte[1024];
UTF8Encoding coding = new UTF8Encoding(true);
while (fs_read.Read(byteArr, 0, byteArr.Length) > 0)
{
Console.WriteLine(coding.GetString(byteArr));
}
}
Console.ReadKey();
}
}
}
到了这里,关于C# 之 FileStream类介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!