使用OutputStream
写入文件时,在该流关闭后,没有错误,它无声地写入。
开始:
self.outputStream = OutputStream(toFileAtPath: filePath, append: true)
self.outputStream.delegate = self
self.outputStream.schedule(in: RunLoop.current, forMode: RunLoopMode.defaultRunLoopMode)
self.open()
代表正在工作:
func stream(_ aStream: Stream, handle eventCode: Stream.Event) {
//Will report that stream was opened.
...写一些文字 - 成功......
self.outputStream.close()
self.outputStream.write(newData, maxLength: newData.count)
而且......没什么。没有写入文字,但没有报告错误 写入封闭流不会触发错误吗?也就是说,我们应该在写入之前检查流状态吗?
答案 0 :(得分:2)
您应该始终检查write()
的返回值,这是写入流的字节数,或者-1
出错:
self.outputStream.close()
let bytesWritten = self.outputStream.write(newData, maxLength: newData.count)
if bytesWritten < 0 {
print("failed:", outputStream.streamError?.localizedDescription ?? "Unknown error")
}
关闭后写入输出流 错误,将通过该检查检测到。
流streamError
可以提供其他信息
如果出现错误,但在这种特殊情况下它是nil
。