C#怎么将Stream保存到文件(stream,开发技术)

时间:2024-05-04 06:06:56 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    C%23%E6%80%8E%E4%B9%88%E5%B0%86Stream%E4%BF%9D%E5%AD%98%E5%88%B0%E6%96%87%E4%BB%B6

希望大家仔细阅读,能够学有所成!

在拿到一个 Stream 如何优雅将这个 Stream 保存到代码

最优雅的方法应该是通过 CopyTo 或 CopyToAsync 的方法

这里的inputStream.Seek(0, SeekOrigin.Begin);不一定需要,请根据你自己的需求,如你只需要将这个 Stream 的从第10个byte开始复制等就不能采用这句代码

用异步方法会让本次写入的时间长一点,但是会让总体性能更好,让 CPU 能处理其他任务

注意使用 CopyToAsync 记得加上 await 哦,执行到这句代码的时候,就将执行交给了 IO 了,大部分的 IO 处理都不需要 CPU 进行计算,这样能达到总体性能更好

另外如果 iputStream 是外面传入的,那么我不建议在这个方法里面释放,为什么呢?我用的好好的一个Stream传入一个业务就被干掉了

其次的方法是自己控制内存复制缓存,此方法将会多出一次内存复制

此方法的作用就是让你修改new byte[1024]的值,让你可以控制复制的缓存

接下来就是一些不推荐的方法了,但是写的时候方便

上面这个方法将会复制两次内存,而且如果 input 这个资源长度有 1G 就要占用 2G 的资源

和上面差不多的是申请一个大的缓存,如下面代码:

从效率和代码的优雅其实都不如 CopyTo 方法,而且因为 stream.Length 作为长度没有决定缓存,所以也不如第二个方法

下面是一个超级慢的方法,一个 byte 一个 byte 写入的速度是超级慢的

本文:C#怎么将Stream保存到文件的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Vue axios库发送请求怎么实现下一篇:

4 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18