如何在Swift中将int8数组保存到文件中

时间:2015-01-16 03:32:36

标签: swift

我想知道如何将int8数组的内容保存到文件中。 我发现如果int8数组表示的“实际内容”是一个String,那么我的代码运行正常。但如果内容实际上是图像,则无法打开保存的文件(表示已损坏)。

我尝试使用文本编辑器打开图像,发现内容与预期的不同(我有“好”图像可用于比较)。我想知道它是否与编码有关?

int8数组是HTTP响应的原始数据(HTTP部分用C编写)。

我不确定我是否走上正轨,有什么想法吗?

var response: NSData! = NSData(bytes: myArray, length: contentLength)
var writeOutput: Bool = response.writeToURL(thePath, atomically: false)

如何修改代码,以便无论内容是文本还是图片,都能正确保存内容。

非常感谢〜

1 个答案:

答案 0 :(得分:3)

斯威夫特3:

let myArray:[Int8] = [ 0x4d, 0x2a, 0x41, 0x2a, 0x53, 0x2a, 0x48]
let pointer = UnsafeBufferPointer(start:myArray, count:myArray.count)
let data = Data(buffer:pointer)
try! data.write(to: URL(fileURLWithPath: "myFile.data"))