15.OC和swift中如何用输出流将二进制数据写入文件夹中

为了在下载大文件时候节省内存,我们会使用输出流,将下载下来的一节一节的二进制数据写入文件中;但是在OC和swift中,用输出流写入文件的时候,代码编写有不同,以下会列出代码,供大家参考:

OC代码:其中data就是二进制数据变量

       // 往输出流中写入数据
       [self.outputStream write:data.bytes maxLength:data.length];

swfit代码:里面主要是将二进制数据Data转换成UnsafePointer类型数据

  • 从AFN中找的
        var buffer = [UInt8](repeating: 0, count: data.count)
       data.copyBytes(to: &buffer, count: data.count)
       outputStream?.write(buffer, maxLength: buffer.count)
  • 有位大神告诉的
        let tempData:NSMutableData = NSMutableData()
        data.withUnsafeBytes {
            tempData.replaceBytes(in: NSMakeRange(0, data.count), withBytes: $0)
        }
        let p:UnsafePointer = tempData.bytes.assumingMemoryBound(to: UInt8.self)
        outputStream?.write(p, maxLength: data.count)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,156评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,271评论 4 61
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,239评论 30 472
  • 参考:https://github.com/dmendel/bindata/wiki BinData提供了一种声明...
    风恋绝尘阅读 2,972评论 0 0
  • 不知道从何时起我爱上了一个人的旅行,路途可远可近,行程可长可短。出行没有规划,不知道下一站是哪,也不知道在一...
    是你的六公子阅读 170评论 0 0