Objective-C NSFileHandle的使用

下面的例子使用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;
    
}


© 2012, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记