在iOS中逐个字符读取文件

3

我有一个问题,需要用 Objective C 来解决(我尝试使用 C 也不行)。

  • 在 Objective C 中,有没有适当的方法可以从文档目录中的文件逐个读取字符(直到 EOF),并在文件中所有的双引号前附加转义字符,并在每行前添加特殊字符(例如 /)?

    (type == "Project")

    替换为

    /(doc.type == \"Project\")

如果您认为我的方法不正确,是否有其他有效的方法来完成此任务?

2个回答

4

获取文件中的所有行,进行更改(例如替换字符或添加更多文本),然后保存文件。

NSString *objPath = [[NSBundle mainBundle] pathForResource:@"textfile" ofType:@"txt"];
NSData *objData = [[NSData alloc] initWithContentsOfFile:objPath];

NSString *objString = [[NSString alloc] initWithData:objData encoding:NSUTF8StringEncoding];
NSMutableArray *lines = [NSMutableArray arrayWithArray:[objString componentsSeparatedByString:@"\n"]];

for (int i = 0; i < lines.count; i++) {
    NSString *oneLine = [lines objectAtIndex:i];
    if (oneLine.length < 2) {
        continue;
    }
    oneLine = [NSString stringWithFormat:@"/%@", oneLine];
    oneLine = [oneLine stringByReplacingOccurrencesOfString:@"`" withString:@"\`"];

    [lines replaceObjectAtIndex:i withObject:oneLine];        
}
NSString *finalString = [lines componentsJoinedByString:@"\n"];
//save the file

2

您可以使用NSFileHandle并将readDataAtLength:的值设置为1。


1
谢谢你,但是为了放置转义字符'',我需要跟踪先前的索引,对吗?还是有其他方法? - Krishna Shanbhag
1
将文件读入内存(如果不太大),作为NSString实例进行所需更改,然后将文件写回。 - Stavash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接