objective-c - 计算文件中的换行数

标签 objective-c cocoa cocoa-touch

使用 objective-c/cocoa touch 可以用来计算文件中换行符出现次数的最小代码是多少?

谢谢!

最佳答案

其他两个答案都是正确的,但需要注意的是它们需要将整个文件加载到内存中才能工作。

解决方法是使用 NSFileHandle 增量加载文件。像这样:

NSFileHandle * file = [NSFileHandle fileHandleForReadingAtPath:pathToFile];
NSUInteger chunkSize = 1024;
NSData * chunk = [file readDataOfLength:chunkSize];
NSUInteger numberOfNewlines = 0;
while ([chunk length] > 0) {
  const unichar * bytes = (const unichar *)[chunk bytes];
  for (int index = 0; index < [chunk length]; ++index) {
    unichar character = (unichar)bytes[index];
    if ([[NSCharacterSet newlineCharacterSet] characterIsMember:character]) {
      numberOfNewlines++;
    }
  }
  chunk = [file readDataOfLength:chunkSize];
}

关于objective-c - 计算文件中的换行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3791194/

相关文章:

html - 将 html 附加到 webview 内容

iphone - 我需要让我的 UITabbar 滚动

ios - 当 iOS 应用进入后台时,我们如何发送 Google Analytics 事件?

ios - 小数如何四舍五入 2

cocoa - 如何直接从磁盘读取文件?

objective-c - 使用 CGDisplay 显示窗口时,文本字段显示为不可编辑

iphone - 注册应用程序以打开图像文件

ios - 如何将字典插入数组

iphone - 使用 SLServiceTypeFacebook 时从 SLComposeViewController 获取 UITextView

objective-c - MPMoviePlayerController 生成本地视频文件的缩略图并存储