使用 NSMutableString 追加到文件末尾

2024-02-16

我有一个日志文件,我试图将数据附加到其末尾。我有一个NSMutableString textToWrite变量,我正在执行以下操作:

[textToWrite writeToFile:filepath atomically:YES 
                                    encoding: NSUnicodeStringEncoding error:&err];

但是,当我执行此操作时,文件中的所有文本都将替换为 textToWrite 中的文本。我怎样才能附加到文件末尾? (或者更好的是,如何在新行上附加到文件末尾?)


我想你可以做几件事:

NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:aPath];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];

请注意,这会将 NSData 附加到您的文件中——而不是 NSString。请注意,如果您使用 NSFileHandle,则必须事先确保该文件存在。fileHandleForWritingAtPath如果路径中不存在文件,则返回 nil。请参阅NSFileHandle 类参考 https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsfilehandle_Class/Reference/Reference.html.

或者你可以这样做:

NSString *contents = [NSString stringWithContentsOfFile:filepath];
contents = [contents stringByAppendingString:textToWrite];
[contents writeToFile:filepath atomically:YES encoding: NSUnicodeStringEncoding error:&err];

我相信第一种方法是最有效的,因为第二种方法涉及在将新内容写入文件之前将文件内容读入 NSString 中。但是,如果您不希望文件包含 NSData 并且更喜欢保留文本,那么第二个选项将更适合您。

[Update]由于 stringWithContentsOfFile 是已弃用 https://developer.apple.com/library/mac/documentation/cocoa/reference/foundation/classes/NSString_Class/DeprecationAppendix/AppendixADeprecatedAPI.html您可以修改第二种方法:

NSError* error = nil;
NSString* contents = [NSString stringWithContentsOfFile:filepath
                                               encoding:NSUTF8StringEncoding
                                                  error:&error];
if(error) { // If error object was instantiated, handle it.
    NSLog(@"ERROR while loading from file: %@", error);
    // …
}
[contents writeToFile:filepath atomically:YES
                                 encoding:NSUnicodeStringEncoding
                                    error:&err];

请参阅 stackoverflow 上的问题 https://stackoverflow.com/questions/2954892/if-nsstring-stringwithcontentsoffile-is-deprecated-what-is-its-replacement

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 NSMutableString 追加到文件末尾 的相关文章

  • RemoteIO 音频单元播放回调中的 AudioBufferList 内容

    我想 拦截 音频数据传送到 iOS 设备扬声器的过程 我相信这可以使用 RemoteIO 音频单元和回调来完成 在下面的playbackCallback中 ioData实际上包含任何音频数据吗 static OSStatus playbac
  • ui 测试 xcode,如何使用 cellquery 点击表视图单元格按钮

    我目前正在为我的应用程序进行 ui 测试 并一直点击我的应用程序的登录按钮 我无法找到我提供了标识符注册按钮的元素 该元素是索引中的第三个 这不是问题 let cellQuery self app tables cells element
  • 在 swift3 中结合平移、alpha 和缩放动画

    我是 iOS Swift 开发的新手 我尝试将三个参数组合在一个动画中 但没有成功 我认为解决方案就在这里 Apple Dev Core 动画编程指南 https developer apple com library content do
  • 如何在iOS应用程序中捕获用户的手写签名[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在我的应用程序中 用户将请求客户提供数字化的手写签名 我需要能够在用户在触摸屏上 书写 签名时捕获签名
  • 使用 ifstream 在大文件中查找

    我正在使用 ifstream 在 C 中实现一个程序 该程序必须在大文件 1TB 中查找 然而 读取2GB后就失败了 有没有办法获取文件位置 即使是大文件 我为 32 位 Windows 机器进行编译 std ifstream f f op
  • 我可以更改键盘方向吗?

    例如我用这段代码关闭自动旋转 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrientation interfaceOrientation return NO BOOL sh
  • 检索 iPhone 中的 Outlook 联系人

    我想通过应用程序导入所有 Outlook 联系人 有什么办法可以做到这一点吗 请告诉我 您可以通过实施 Microsoft Exchange 服务器协议来实现此目的 微软MSDN http msdn microsoft com en us
  • 在不同的捆绑包上测试 iPhone 应用内购买?

    我们有一组 iPhone 应用程序的 Beta 测试人员 最近 我们在应用程序中添加了应用内购买功能 在此之前 我们会使用单独的捆绑 ID 和名称向 Beta 测试人员发送临时版本 以便他们可以在手机上拥有商店版本和临时版本 然而 似乎我们
  • iOS:Swift - 如何在触摸时向地图添加精确定位并获取该位置的详细地址?

    我想在 iOS 地图的触摸上添加注释并获取各个位置的详细地址 地标 我如何在 Swift 中实现这一目标 提前致谢 要对地图上的触摸做出反应 您需要为地图视图设置点击识别器 in viewDidLoad let gestureRecogni
  • 径向渐变绘制性能 - OpenGL-ES 可以改进吗?

    我正在开发一个图像处理应用程序 它将径向渐变叠加在从照片库加载的图像上 在屏幕上 我有一个滑块可以动态地增大 减小径向渐变的半径 我发现模拟器上的性能很好 但在 iPhone 3G 或 3GS 上就很糟糕了much移动滑块时重绘速度较慢 我
  • 在 iOS 上,UIView 的 Frame 属性未在动画内部分配

    在我的 iOS 应用程序中 我尝试执行以下简单的动画 void dismissToolbar NSLog bx f by f bw f bh f toolbar frame origin x toolbar frame origin y t
  • 获取对 iOS 应用程序中最顶层视图/窗口的引用

    我正在创建一个可重用的框架 用于在 iOS 应用程序中显示通知 我希望将通知视图添加到应用程序中其他所有内容的顶部 有点像 UIAlertView 当我初始化监听 NSNotification 事件并添加视图作为响应的管理器时 我需要获取对
  • 使用 NSURLSessionDataTask 显示文件下载进度

    我想显示特定文件的文件下载进度 收到了多少字节 它与 NSURLSessionDownloadTask 配合得很好 我的问题是我想用 NSURLSessionDataTask 实现同样的效果 以下是将文件接收到 NSData 并写入文档文件
  • “同时创建 xib 文件”按钮已禁用

    我在创建时遇到这个问题UIView s子类 创建 例如 UIViewControllers or UITableViewCells没关系 为什么会出现这种情况 I create view using cmd N and Xcode Vers
  • iOS - NSNotificationCenter 多个UIKeyboard通知

    我有两个视图控制器 我们称它们为 A 和 B 1 在 A 中 我显示一个包含文本字段的 popOver 2 B中有一个UITextView用于简单的文本编辑 我必须管理 A 和 B 中的键盘才能滚动键盘隐藏的内容 我知道如何重新定位内容 我
  • 带有 Core Data 对象的动态 UITableView 高度

    过去几天我一直在试图解决一个谜团 即为什么我的批处理大小为 20 的 NSFetchedResultsController 总是在获取完成后立即错误 即加载到内存中 我的所有对象 从而导致请求需要约 20 秒 事实证明 这是因为在我的 he
  • 是什么导致了这个 iPhone 崩溃日志?

    我有点卡住了 需要解决这个问题 因为我的一个应用程序出现了随机崩溃 而这些崩溃并不总是能够重现 这是崩溃日志之一 Incident Identifier 59865612 9F00 44EA 9474 2BF607AD662E CrashR
  • 用 UIView 像翻书一样翻页?

    我正在尝试在之间切换UIViews让它看起来就像你正在翻书的一页 The UIViewAnimationTransitionCurlUp如果我能让它向左或向右卷曲 那就非常接近了 这可能吗 我尝试过使用CATRansition但没有一种动画
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • Readfile 从大文件中读取 0 字节?

    我正在尝试通过以下方式发送一个大文件readfile 但是 没有任何内容发送到浏览器 并且readfile 回报0 not false 我尝试发送的文件大小为 4GiB 并且可由 PHP 读取 我正在设置set time limit 0 以

随机推荐

  • Android - 在 Eclipse 中使用新名称复制现有项目

    我正在使用 Eclipse 假设我在 eclipseworkspace 中有一个项目 ProjectA 在 ProjectA 文件夹中 我想复制该项目 但使用新名称 ProjectB 并调整新项目中的所有引用 对于我认为是不同的基本操作 我
  • 如何在VS中禁用增量编译

    我怎样才能禁用Incremental Compilation 我正在使用 DevPartner 它在检测代码时抱怨Skipping instrumentation due to incremental compilation 有两个地方需要
  • 当从 selectInput 选择变量时,相关性不起作用,但否则运行得很好

    我正在计算correlation for 各国之间 数量每日新冠病例 每日疫苗接种 有two df 一个用于确诊病例及其他用于疫苗接种 library tidyverse library lubridate library glue lib
  • 在 mongodb 中,获取第一个和最后一个文档的最有效方法是什么

    我有这样的文件 class A DateTime T 我想找到最早和最新的文档 这样做是否更好 var First db Collection AsQueryable OrderBy gt t FirstOrDefault var Last
  • 使用 Nginx + Gzip + Unicorn 时缺少 Content-Length 标头

    我不知道为什么当我在 nginx 中使用 gzip 时 http 响应会丢失 Content Length header 我真的陷入困境 请有人帮助我 非常感谢 这是我的配置文件 nginx conf 用户无人无人 工作进程 8 event
  • 使用 Dynamorm 在 Python 中构建 AWS SAM 嵌套应用程序

    我在用AWS SAM https aws amazon com serverless sam 构建无服务器应用程序 我按照说明构建嵌套应用程序 https aws amazon com blogs compute announcing ne
  • CakePHP Cache::clear 不起作用

    我的 bootstrap php 文件中有一个缓存配置 Cache config long array engine gt File duration gt 1 week probability gt 100 mask gt 0666 pa
  • 调用android中隐藏的API来关闭屏幕

    我正在考虑使用隐藏的 api 来关闭我的应用程序中的屏幕 setScreenState from https android googlesource com platform frameworks base eclair release
  • 是否有适用于 iPhone、Android 和 Windows Phone 7 的增强现实框架?

    我想开发一个在 iPhone Android Windows Phone 7 智能手机上运行的应用程序 能够识别标记并在其上放置增强现实内容 我可以使用任何通用框架来完成该任务吗 这可能是您得到的最接近的结果 http nyatla jp
  • ASP.NET WebApi 中异步调用的本地化

    嗨 我计划基于 Accept Language 标头 通过基于该标头设置 CurrentUICulture 来处理错误字符串等的服务器端本地化 但显然它不会通过异步调用 下面是示例代码来说明问题 是否有处理异步调用本地化的默认方法 publ
  • 如何查找指向 Oracle 中一条记录的外键依赖关系?

    我有一个非常大的 Oracle 数据库 有很多表和数百万行 我需要删除其中之一 但希望确保删除它不会破坏任何其他指向它作为外键记录的依赖行 有没有办法获取指向该行的所有其他记录的列表 或者至少是表模式 我知道我可以尝试自己删除它并捕获异常
  • 每行上的模态按钮显示从数据库获取详细信息的模态

    我已经使用表从两个表中获取所有记录 效果很好 我在显示的每一行末尾添加了一个按钮Modal 在此模式中 我想根据每个行 ID 显示数据 我的代码有一个 while 循环 它显示表中的记录 在该 while 循环中 我又编写了一个 sql 语
  • 如何在使用 XMLHttpRequest() 时在 python 中接收 POST 数据

    我有两个关于使用 XMLHttpRequest 时接收数据的问题 客户端是用javascript编写的 服务器端是用python写的 如何在 python 端接收 处理数据 如何响应 HTTP 请求 客户端 var http new XML
  • powershell - 使用文件名列表删除文件

    我从堆栈溢出中得到了以下代码 它工作正常 TargetFolder Pathofyourfolder Files Get ChildItem TargetFolder Exclude gc List txt Recurse foreach
  • 使用 AJAX 观察 SQL 数据库的更改 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的数据库中有一个列将随机更新 每当该列更新时 我都需要刷新页面上的内容 如何使用 AJAX jQuery 仅对数据库更改执行操作 你
  • 错误您已经拥有该商品

    我有一个新的 Android 应用程序 其中添加了应用程序内计费功能 我感到沮丧得抓狂 我已上传签名的 APK 并发布到 alpha 我创建了一组应用内产品并将其全部激活 我创建了一个新的 Gmail 帐户 并将其定义为应用程序 apk 页
  • Java 中的架构约束 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想确保我的项目不包含包之间不必要的依赖关系 例如 我想确保该项目具有分层结构 IE 模型低于一切 业务
  • 从 HDC 句柄创建 QPaintDevice

    我有一个来自外部库的 Windows HDC 句柄 我想使用 QPainter 功能来绘图 Qt 中有什么方法可以从 HDC 句柄创建 QPaintDevice 吗 这样做的一种方法 使用 Windows API 从 HDC 获取 HWND
  • 使用 jQuery 操作 TinyMCE 内容

    使用 TinyMCE 我可以轻松操作内容并将其发送回编辑器 如下所示 get content from tinyMCE var content tinyMCE get content getContent manipulate conten
  • 使用 NSMutableString 追加到文件末尾

    我有一个日志文件 我试图将数据附加到其末尾 我有一个NSMutableString textToWrite变量 我正在执行以下操作 textToWrite writeToFile filepath atomically YES encodi