1、读取文件类和经常使用方法
spa
NSFileManager类主要对文件的操做(删除、修改、移动、复制等等)。
code
NSFileHandle类主要对文件内容进行读取和写入操做,能够使用NSFileHandle作文件的断点续传。
对象
NSFileHandle处理文件的步骤:
get
一、建立一个NSFileHandle对象;
string
二、对打开的文件进行I/O操做;
it
三、关闭文件;
class
2、经常使用方法 test
+ (id)fileHandleForReadingAtPath:(NSString *)path; //打开一个文件只准读 + (id)fileHandleForWritingAtPath:(NSString *)path; //打开一个文件只准写 + (id)fileHandleForUpdatingAtPath:(NSString *)path; //打开一个文件可读写 // - (NSData *)availableData; //从设备或通道返回可用的数据 - (NSData *)readDataToEndOfFile; //从当前位置读取到文件尾 - (NSData *)readDataOfLength:(NSUInteger)length; //读取指定长度的内容 // - (void)writeData:(NSData *)data; //写数据 - (unsigned long long)offsetInFile; //获取当前文件偏移量 - (unsigned long long)seekToEndOfFile; //移动到文件尾 - (void)seekToFileOffset:(unsigned long long)offset; //移动到指定偏移量 - (void)truncateFileAtOffset:(unsigned long long)offset; //设置文件为指定大小 - (void)closeFile; //关闭文件
3、相关代码以下:coding
一、向指定文件中写入数据
file
NSString *homepath = NSHomeDirectory(); NSLog(@"homepath:%@",homepath); NSString *filepath = [homepath stringByAppendingPathComponent:@"Data/TestData/test.txt"]; NSLog(@"filepath:%@",filepath); NSFileHandle *filehandle = [NSFileHandle fileHandleForUpdatingAtPath:filepath]; //NSFileHandle *filehandle = [NSFileHandle fileHandleForWritingAtPath:filepath]; [filehandle seekToEndOfFile]; NSString *str = @"追加的数据"; NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding]; [filehandle writeData:data]; [filehandle closeFile];
二、向指定文件中读出数据
NSString *homepath = NSHomeDirectory(); NSString *filepath = [homepath stringByAppendingPathComponent:@"Data/TestData/test.txt"]; NSFileHandle *filehandle = [NSFileHandle fileHandleForUpdatingAtPath:filepath]; NSUInteger length = [filehandle availableData].length; [filehandle seekToFileOffset:length/2]; NSData *data = [filehandle readDataToEndOfFile]; NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"the data is :%@",str); [filehandle closeFile];
三、对文件进行相关操做
NSString *homepath = NSHomeDirectory(); NSString *filepath = [homepath stringByAppendingPathComponent:@"Data/TestData/test.txt"]; NSString *targetpath = [homepath stringByAppendingPathComponent:@"Data/TestData/test2.txt"]; NSFileManager *filemanager = [NSFileManager defaultManager]; BOOL result = [filemanager createFileAtPath:targetpath contents:nil attributes:nil]; if (result == true) { NSLog(@"文件建立成功!"); } NSFileHandle *sourcefilehandle = [NSFileHandle fileHandleForReadingAtPath:filepath]; NSFileHandle *targetfilehandele = [NSFileHandle fileHandleForWritingAtPath:targetpath]; NSData *data = [sourcefilehandle readDataToEndOfFile]; [targetfilehandele writeData:data]; [sourcefilehandle closeFile]; [targetfilehandele closeFile];