如何在 Swift 中以二进制形式打开文件
How to open a file in binary form in Swift
我是 Swift 的新手,我不确定如何获取文件并将其存储在二进制数组中。
我知道如何获取文件,但我不知道如何将它存储在二进制数组中,稍后会修改。
假设变量"chosenFile"是我选择的文件(NSData类型)
而变量"bArray"([int8]数组)是用来存储文件二进制表示的数组。
var bArray: [Int8] = [Int8]()
var chosenFile: NSData! = NSData(contentsOfURL: "xxxxxxxx")
有什么帮助吗?
如果创建 NSMutableData
的实例,则可以使用 mutableBytes
property 获取对基础数据的引用。在 C 中,这将是 void *
;在 Swift 中,它是一个 UnsafeMutablePointer<Void>
.
然后您可以直接使用这些数据(不需要另一个字节数组)。只要您保持在 NSMutableData
的 length
范围内,您就可以,例如 replace individual bits of data, or indeed the entirety of the data.
或者,您可以使用 replaceBytesInRange:withBytes:
有选择地修改部分数据,而不是直接处理原语。 the documentation.
中也对此进行了解释
我是 Swift 的新手,我不确定如何获取文件并将其存储在二进制数组中。
我知道如何获取文件,但我不知道如何将它存储在二进制数组中,稍后会修改。
假设变量"chosenFile"是我选择的文件(NSData类型) 而变量"bArray"([int8]数组)是用来存储文件二进制表示的数组。
var bArray: [Int8] = [Int8]()
var chosenFile: NSData! = NSData(contentsOfURL: "xxxxxxxx")
有什么帮助吗?
如果创建 NSMutableData
的实例,则可以使用 mutableBytes
property 获取对基础数据的引用。在 C 中,这将是 void *
;在 Swift 中,它是一个 UnsafeMutablePointer<Void>
.
然后您可以直接使用这些数据(不需要另一个字节数组)。只要您保持在 NSMutableData
的 length
范围内,您就可以,例如 replace individual bits of data, or indeed the entirety of the data.
或者,您可以使用 replaceBytesInRange:withBytes:
有选择地修改部分数据,而不是直接处理原语。 the documentation.