文件读取流和写入流

文件读取流和写入流


  • 读写内存使用 System.IO.MemorySystem
  • 处理网络数据使用 Net.Sockets.NetworkStream

流的使用

FileStream readFileStream = new FileStream(FilePath, FileMode, FileAccess);
FileStream readFileStream = new FileStream(@"E:\file.zip", FileMode.Open, FileAccess.Read);
readFileStream.ReadByte();
FileStream writeFileStream = new FileStream(@"E:\fileCopy.zip", FileMode.Create, FileAccess.Write);
writeFileStream.WriteByte();
writeFileStream.Close();
readFileStream.Close();
FileStream readFileStream = new FileStream(@"E:\file.zip", FileMode.Open, FileAccess.Read);
FileStream writeFileStream = new FileStream(@"E:\fileCopy.zip", FileMode.Create, FileAccess.Write);
int nextByte = -1;
while ((nextByte = readFileStream.ReadByte()) != -1)
{
    writeFileStream.WriteByte((byte)nextByte);
}
writeFileStream.Close();
readFileStream.Close();

优化读取和写入流

FileStream readFileStream = new FileStream(@"E:\file.zip", FileMode.Open, FileAccess.Read);
FileStream writeFileStream = new FileStream(@"E:\fileCopy.zip", FileMode.Create, FileAccess.Write);
byte[] buffer = new byte[1024];
int count = -1;
while ((count = readFileStream.Read(buffer, 0, 1024)) != 0)
{
    writeFileStream.Write(buffer, 0, count);
}
writeFileStream.Close();
readFileStream.Close();

通过 FileInfo 打开文件流

FileInfo myFile1 = new FileInfo(@"E:\file.zip");
FileSream fis = myFile1.OpenRead();
FileInfo myFile2 = new FileInfo(@"E:\fileCopy.zip");
FileSream fos = myFile2.OpenWrite();
FileInfo myFile = new FileInfo(@"E:\file.zip");
FileSream fos = myFile.Open(FileMode.Append, FileAccess.Write, FileShare.None);
FileInfo myFile = new FileInfo(@"E:\file.zip");
FileSream fs = myFile.Create();

FileStream 文件流的关闭

使用完了一个流之后,一定要调用 fs.Close()​ 方法去关闭流,关闭流会释放与它相关联的资源,允许其他应用程序为同一个文件设置流。这个操作也会刷新缓冲区。

posted @ 2023-10-04 15:50  天空之城00  阅读(6)  评论(0)    收藏  举报