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)

你可能感兴趣的:(15.OC和swift中如何用输出流将二进制数据写入文件夹中)