【发布时间】:2020-04-24 19:29:17
【问题描述】:
我正在尝试以 1024 字节的块读取 MP4 文件。我编写了一个几乎可以工作的代码。我正在执行以下操作:
let audioFilePath = Bundle.main.path(forResource: "video", ofType: "mp4")!
var chunks = [[UInt8]]()
if let stream: InputStream = InputStream(fileAtPath: audioFilePath) {
var buf: [UInt8] = [UInt8](repeating: 0, count: 1024)
stream.open()
while stream.hasBytesAvailable {
stream.read(&buf, maxLength: 1024)
chunks.append(buf)
}
stream.close()
}
print(chunks.count)
上面代码的问题是我正在读取大小为 15.948.514 字节的 MP4 文件。这意味着它应该恰好在 15.574 个块中完成(最后一个块可能少于 1024,但这不是问题),但是代码打印了 15.576 个块,并且它们的大小都是 1024。上面的代码有什么问题?
【问题讨论】:
标签: swift file-io binaryfiles