gpt4 book ai didi

iphone - 当我想使用outputStream创建文件时,我总是得到-1

转载 作者:行者123 更新时间:2023-11-30 14:25:18 25 4
gpt4 key购买 nike

我想将一些数据写入文本文件,但我总是得到“错误”,因为 bytesWritten 的值为 -1。我已经调试过,数据长度和数据字节都可以,并且我认为我有权在桌面上创建文件。造成这种情况的原因是什么?我该如何解决?代码如下:

void savedata(NSData *data)
{
NSInteger dataLength;
const uint8_t * dataBytes;
NSInteger bytesWritten;
NSInteger bytesWrittenSoFar;
dataLength = [data length];
dataBytes = [data bytes];

NSOutputStream *fileStream = [NSOutputStream outputStreamToFileAtPath:@"~/Desktop/12.txt" append:NO];

bytesWrittenSoFar = 0;
do {
bytesWritten = [fileStream write:&dataBytes[bytesWrittenSoFar] maxLength:dataLength - bytesWrittenSoFar];
assert(bytesWritten != 0);
if (bytesWritten == -1) {
NSLog(@"Wrong!");
break;
} else {
bytesWrittenSoFar += bytesWritten;
}
} while (bytesWrittenSoFar != dataLength);
}

int main(int argc, const char * argv[])
{
@autoreleasepool {
NSData* data = [@"sadas" dataUsingEncoding:NSUTF8StringEncoding];

savedata(data);

return 0;
}
}

最佳答案

在写入流之前,您必须对流调用-open。如果您阅读the documentation有一个小注释:

Discussion

The stream must be opened before it can be used.

以后出现问题时,您还可以通过查询-streamStatus-streamError方法来获取更多信息。

关于iphone - 当我想使用outputStream创建文件时,我总是得到-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10427805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com