【 C# 】多媒体文件的读取及复制

前言

相较于File类,FileStream类更适合用于读取大型文件,以及非文本文件。相同点是都是对字节进行操作。不同点是FileStream是以流的形式读取,打个比方,同样是搬一车砖,File类是直接把整车砖搬下来,对劳动者的负担比较大,而FileStream类是一块一块搬,或者几块几块搬,对劳动者负担较小。

 

1/创建FileStream对象 new FileStream(操作文件的路径,对文件的操作,对文件内数据的操作)

 FileStream fsRead = new FileStream(@"C:\Users\Desktop\new.txt",FileMode.OpenOrCreate,FileAccess.ReadWrite);

 

2/读取文件 Read()

//读取    
byte[] buffer = new byte[1024*1024*5];    
int r = fsRead.Read(buffer,0,buffer.Length);//返回读取的实际有效字节数
        
//解码    
string s = Encoding.UTF8.GetString(buffer,0,r);

 

3/写入文件 Write()

using(FileStream fsWrite = new  FileStream(@"C:\Users\Desktop\new.txt",FileMode.OpenOrCreate,FileAccess.Write)
	{
		string str = "Nick帅的被人砍";
		byte[] buffer = Encoding.UTF8.GetBytes(str);
		fsWrite.Write(buffer,0,buffer.Length);
	}

 

4/用FileStream实现多媒体文件的复制

source:被复制文件路径

target:新文件路径

public static void CopyFile(string source, string target)
        {
            //创建一个负责读取的流
            using (FileStream fsRead = new FileStream(source, FileMode.OpenOrCreate, FileAccess.Read))
            {
                //创建一个负责写入的流
                using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write))
                {
                    byte[] buffer =new byte[1024*1024*5];
                    while (true)//循环读取
                    {
                        //返回实际读取的字节数
                        int r = fsRead.Read(buffer, 0, buffer.Length);
                        if (r == 0)//读取不到时,结束循环
                        {
                            break;
                        }
                        fsWrite.Write(buffer,0,r);
                    }                
                }
            }
        }

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值