下面的例子使用NSFileHandle读取写入文件。
#import
int main (int argc, const char * argv[])
{
@autoreleasepool {
NSString *file1=@"/Users/fhp/Desktop/1.txt";
NSString *file2=@"/users/fhp/Desktop/2.txt";
NSFileHandle *inFile=[NSFileHandle fileHandleForReadingAtPath:file1];
//打开1.txt
if(inFile==nil)
{
NSLog(@"打开1.txt错误");
return 1;
}
// [[NSFileManager defaultManager] createFileAtPath:file2 contents:nil attributes:nil];
//创建文件 2.txt
NSFileHandle *outFile=[NSFileHandle fileHandleForWritingAtPath:file2];
[outFile truncateFileAtOffset:0];
//清空内容,把指针指向开头
// [outFile seekToEndOfFile];
//可以把指针移动到文件结尾,这样就是增加文件内容,也可以seekTo到指定的位置
NSMutableData *buffer=[NSMutableData dataWithCapacity:2048];
while ((buffer=[inFile readDataOfLength:2048])!=nil) {
[outFile writeData:buffer];
//循环读取文件并写入
}
//当文件不大时,也可以用下面的方法,一次读入整个文件
//最多不超过UINT_MAX个字节,定义在limits.h中,一般为FFFFFFFF,即4GB
// NSData *buffer=[inFile readDataToEndOfFile];
// //读取整个文件内容
// [outFile writeData:buffer];
// //写入文件
[inFile closeFile];
[outFile closeFile];
//关闭文件
}
return 0;
}