文件流占用资源比较多,而且工作效率叫低,所以在使用完流操作后应及时使用Close()关闭流
也可以使用using来及时的释放流所占用的资源
一、文件流FileStream
byte[] byteText;
using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None))
{
byteText = new byte[fileStream .Length];
fileStream .Read(byteText, 0, byteText.Length);
}
fileStream .Close();
//FileStream的实例化还可以用File.Open(), File.OpenRead()
二、读写文本文件:StreamReader/StreamWrite
FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None);
using (StreamReader streamReader = new StreamReader(fileStream ))
{
while (streamReader .Peek() >= 0) //没有可用字符,返回-1
{
Console.WriteLine(streamReader .ReadLine());
}
}
fileStream .Close();
三、二进制流:BinaryReader/BinaryWriter
FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None);
using(BinaryReader binaryReader = new BinaryReader(fileStream ))
{
int length = binaryReader.Read(buff, 0, buff.Length);
}
fileStream .Close();
四、网络流:NetworkStream
using(NetworkStream networkStream = new NetworkStream(sock))
{
networkStream .Write(buff, 0, buff.Length); //将buff发送到网络
}
五、缓冲流:BufferedStream
内存缓冲流实际上是内存中的一个字节块
利用缓冲可以避免操作系统频繁地到磁盘上读取数据,从而减轻了操作系统的负担。
六、内存流:MemoryStream
一个无缓冲流,它所封装的数据直接放在内存中,因此可以用于快速临时存储、进程间传递信息等。