我试图从Swift项目中作为资产包含的文件中读取4个字节。下面代码中的流是一个InputStream,创建为:
let part = fileName.components(separatedBy: ".")
let path = Bundle.main.path(forResource: part[0], ofType: part[1])
let stream = InputStream.init(fileAtPath: path!)
但是,由于某种原因,InputStream.read返回-1。该文档指出,当返回-1时,更多信息将出现在streamError字段中,但是调试器将此字段显示为nil。
var val = [UInt8](repeating: 0, count: 4)
let bytesRead = stream.read(&val, maxLength: 4)
let err = stream.streamError
let desc = err.debugDescription
该文件长度为100kb,因此它不应该在流的末尾。
答案 0 :(得分:2)
你必须open()
在您可以读取或写入之前的流:
let stream = InputStream(fileAtPath: path!)
stream.open()