gpt4 book ai didi

objective-c - 将 NSString 对象写入文件的典型方法是什么?

转载 作者:太空狗 更新时间:2023-10-30 03:35:27 27 4
gpt4 key购买 nike

例如,我想将一些字符串值 str 写入文件 "yy",因为它在循环的每次迭代中都会发生变化。以下是我目前的实现方式:

NSOutputStream *oStream = [[NSOutputStream alloc] initToFileAtPath:@"yy" append:NO];
[oStream open];

while ( ... )
{

NSString *str = /* has already been set up */

NSData *strData = [str dataUsingEncoding:NSUTF8StringEncoding];
[oStream write:r(uint8_t *)[strData bytes] maxLength:[strData length]];

...
}

[oStream close];

忽略我确实需要的 UTF-8 编码,这就是 NSString 通常写入文件的方式吗?也就是说,首先转换为 NSData 对象,然后使用 bytes 并将结果转换为 uint8_t for NSOutputStream?

是否有更常用的替代方案?

编辑:需要将多个 NSString 附加到同一个文件,因此才有上面的循环。

最佳答案

ctshryock 的解决方案与您的略有不同,因为您是边做边追加,而 ctshyrock 是一次写入一个文件(覆盖以前的版本)。对于长期运行的流程,这些将完全不同。

如果你确实想边写边写,我通常在这里使用 NSFileHandle 而不是 NSOutputStream。在我看来,它只是更容易使用。

NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:aPath];
while ( ... )
{
NSString *str = /* has already been set up */

[fileHandle writeData:[str dataUsingEncoding:NSUTF8StringEncoding]];
}

[fileHandle closeFile];

请注意,fileHandle 将在释放时自动关闭,但我喜欢在完成后继续并显式关闭它。

关于objective-c - 将 NSString 对象写入文件的典型方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1131329/

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