我的代码替换文本而不是插入它从5符号开始的:
NSFileHandle *file = [NSFileHandle fileHandleForUpdatingAtPath: filePath];
[file seekToFileOffset: 5];
[file writeData: [value dataUsingEncoding:NSUTF8StringEncoding]];
有没有什么办法将数据插入到文本文件?
我的代码替换文本而不是插入它从5符号开始的:
NSFileHandle *file = [NSFileHandle fileHandleForUpdatingAtPath: filePath];
[file seekToFileOffset: 5];
[file writeData: [value dataUsingEncoding:NSUTF8StringEncoding]];
有没有什么办法将数据插入到文本文件?
这是因为你的代码中设置索引position to 5
,并从那里开始编写,因此从替代一切5
起。
我将会把文件中的内容复制到一个变量,并从那里修改它作为一个string
。 由它的外观,你试图做什么是不可能的
更新:既然你需要的是从X写抵消这种应该做的伎俩
NSFileHandle *file;
NSMutableData *data;
const char *bytestring = "black dog";
data = [NSMutableData dataWithBytes:bytestring length:strlen(bytestring)];
file = [NSFileHandle fileHandleForUpdatingAtPath: @"/tmp/quickfox.txt"];
if (file == nil)
NSLog(@"Failed to open file");
[file seekToFileOffset: 10];
[file writeData: data];
[file closeFile];
嗯,这可能不是一个有效的方法,但你可以读取整个文本文件转化成的NSMutableString,然后使用insertString:atIndex:然后把它写回。 据我知道有没有办法文本插入到现有的文件。 类似的问题
一个简单的例子:
NSString *path = //Your file
NSMutableString *contents = [NSMutableString stringWithContentsOfFile:txtFilePath encoding:NSUTF8StringEncoding error:NULL];
[contents insertString:@"Some string to insert" atIndex:5];
[contents writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];
在顺序文件的地方插入数据将要求整个文件被改写。 这是可能的,但是,将数据添加到文件末尾无需重写文件。