使用
FileStream 类对文件系统上的文件进行读取、写入、打开和关闭操作,并对其他与文件相关的操作系统句柄进行操作,如管道、标准输入和标准输出。读写操作可以指定为同步或异步操作。
FileStream 对输入输出进行缓冲,从而提高性能。
先看代码,后面讲解:
using
System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO; // 注意,必不可少
namespace WasteIndustry {
public partial class Form3 : Form {
public Form3() {
InitializeComponent();
/*
* C# Program
* Author:神舟龙
* Email: [email protected]
*/
}
private void Form3_Load( object sender, EventArgs e) {
// 创建一个文本文件,并实例化一个文件流
FileStream MyFileStream1 = new FileStream( @" D:\Test.text " ,FileMode.Create);
FileInfo MyFiles = new FileInfo( @" D;\Test.text " );
// 实例化一个只读文件流
FileStream MyFileStream2 = MyFiles.OpenRead();
// 设置文件流为只写权限
MyFileStream2 = MyFiles.OpenWrite();
// 设置文件流的打开方式为追加模式,只读权限,不共享
MyFileStream2 = MyFiles.Open(FileMode.Append,FileAccess.Read,FileShare.None);
// 创建文件
MyFileStream2 = MyFiles.Create();
// 从文件中读取字节
int MyBytes = MyFileStream1.ReadByte();
// 定义数组长度
int NumberOFBytes = 20 ;
// byte类型数组
byte [] MyByteArray = new byte [NumberOFBytes];
// 从文件中读取20个字节放入数组中
int BytesRead = MyFileStream1.Read(MyByteArray, 0 ,NumberOFBytes);
// 定义一个字节
byte MyWriteByte = 100 ;
// 向文件中写入一个字节
MyFileStream1.WriteByte(MyWriteByte);
// 定义数组长度
int NumberOfBytesToWrite = 256 ;
// 定义byte类型数组
byte [] MyWriteByteArray = new Byte[NumberOfBytesToWrite];
// 循环向byte类型的数组中插入byte值
for ( int i = 0 ; i < 256 ; i ++ ) {
MyWriteByteArray[i] = ( byte )i;
i ++ ;
}
// 向流中写入数组内容
MyFileStream1.Write(MyWriteByteArray, 0 ,NumberOfBytesToWrite);
// 关闭流
MyFileStream1.Close();
// 关闭流
MyFileStream2.Close();
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO; // 注意,必不可少
namespace WasteIndustry {
public partial class Form3 : Form {
public Form3() {
InitializeComponent();
/*
* C# Program
* Author:神舟龙
* Email: [email protected]
*/
}
private void Form3_Load( object sender, EventArgs e) {
// 创建一个文本文件,并实例化一个文件流
FileStream MyFileStream1 = new FileStream( @" D:\Test.text " ,FileMode.Create);
FileInfo MyFiles = new FileInfo( @" D;\Test.text " );
// 实例化一个只读文件流
FileStream MyFileStream2 = MyFiles.OpenRead();
// 设置文件流为只写权限
MyFileStream2 = MyFiles.OpenWrite();
// 设置文件流的打开方式为追加模式,只读权限,不共享
MyFileStream2 = MyFiles.Open(FileMode.Append,FileAccess.Read,FileShare.None);
// 创建文件
MyFileStream2 = MyFiles.Create();
// 从文件中读取字节
int MyBytes = MyFileStream1.ReadByte();
// 定义数组长度
int NumberOFBytes = 20 ;
// byte类型数组
byte [] MyByteArray = new byte [NumberOFBytes];
// 从文件中读取20个字节放入数组中
int BytesRead = MyFileStream1.Read(MyByteArray, 0 ,NumberOFBytes);
// 定义一个字节
byte MyWriteByte = 100 ;
// 向文件中写入一个字节
MyFileStream1.WriteByte(MyWriteByte);
// 定义数组长度
int NumberOfBytesToWrite = 256 ;
// 定义byte类型数组
byte [] MyWriteByteArray = new Byte[NumberOfBytesToWrite];
// 循环向byte类型的数组中插入byte值
for ( int i = 0 ; i < 256 ; i ++ ) {
MyWriteByteArray[i] = ( byte )i;
i ++ ;
}
// 向流中写入数组内容
MyFileStream1.Write(MyWriteByteArray, 0 ,NumberOfBytesToWrite);
// 关闭流
MyFileStream1.Close();
// 关闭流
MyFileStream2.Close();
}
}
}
MyFileStream1对象,使用指定路径和创建模式实例化,创建模式FileMode是一个枚举类型,它还包括:
Append | 可以打开现有的文件并查找的文件尾部,FileMode.Append只能与FileAcces.Write(写权限)一起使用 |
Create | 创建新文件,如果文件存在则覆盖,没有则新建 |
CreateNew | 创建新文件,有的话,出现异常 |
Open | 打开现有的文件,如果有打开,不存在文件就会引发异常 |
如果存在文件则打开,不存在则创建 | 如果存在文件则打开,不存在则创建 |
MyFileStream2对象,用FileInfo实例化,FileInfo方法有open,openreade,opentext,create,createtext。
文件流的读取(read)与写入(write);
read
//
定义数组长度
int NumberOFBytes = 20 ;
// byte类型数组
byte [] MyByteArray = new byte [NumberOFBytes];
// 从文件中读取20个字节放入数组中
int BytesRead = MyFileStream1.Read(MyByteArray, 0 ,NumberOFBytes);
int NumberOFBytes = 20 ;
// byte类型数组
byte [] MyByteArray = new byte [NumberOFBytes];
// 从文件中读取20个字节放入数组中
int BytesRead = MyFileStream1.Read(MyByteArray, 0 ,NumberOFBytes);
定义一个byte类型的数组,设置数组的长度,read方法就是在文件中从0开始读取,读取20个字节数,然后替换到数组中
//
定义数组长度
int NumberOfBytesToWrite = 256 ;
// 定义byte类型数组
byte [] MyWriteByteArray = new Byte[NumberOfBytesToWrite];
// 循环向byte类型的数组中插入byte值
for ( int i = 0 ; i < 256 ; i ++ ) {
MyWriteByteArray[i] = ( byte )i;
i ++ ;
}
// 向流中写入数组内容
MyFileStream1.Write(MyWriteByteArray, 0 ,NumberOfBytesToWrite);
int NumberOfBytesToWrite = 256 ;
// 定义byte类型数组
byte [] MyWriteByteArray = new Byte[NumberOfBytesToWrite];
// 循环向byte类型的数组中插入byte值
for ( int i = 0 ; i < 256 ; i ++ ) {
MyWriteByteArray[i] = ( byte )i;
i ++ ;
}
// 向流中写入数组内容
MyFileStream1.Write(MyWriteByteArray, 0 ,NumberOfBytesToWrite);
定义一个byte类型的数组,设置数组的长度,并通过循环想byte数组中写入字节,通过write方法把数组中的值从0位置开始向流中写入内容;
(大内低手,口下留情,欢迎指正!)