2013年12月12日学习日志:IOS沙盒机制和文件操作(3)
1. fileManager使用操作当前目录
NSFileManager*fileManager = [NSFileManager defaultManager];
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString*documentsDirectory = [paths objectAtIndex:0];
//更改到待操作的目录下
[fileManagerchangeCurrentDirectoryPath:[documentsDirectory stringByExpandingTildeInPath]];
//创建文件fileName文件名称,contents文件的内容,如果开始没有内容可以设置为nil,attributes文件的属性,初始为nil
NSString * fileName= @"testFileNSFileManager.txt";
NSArray *array =[[NSArray alloc] initWithObjects:@"hello world",@"helloworld1", @"hello world2",nil];
[fileManagercreateFileAtPath:fileName contents:array attributes:nil];
2. 删除文件
[fileManager removeItemAtPath:fileName error:nil];
3. 混合数据的读写
NSString * fileName = @"testFileNSFileManager.txt";
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString *documentsDirectory =[paths objectAtIndex:0];
//获取文件路径
NSString *path =[documentsDirectory stringByAppendingPathComponent:fileName];
//待写入的数据
NSString *temp = @"nihao 世界";
int dataInt = 1234;
float dataFloat = 3.14f;
//创建数据缓冲
NSMutableData *writer =[[NSMutableData alloc] init];
//将字符串添加到缓冲中
[writer appendData:[tempdataUsingEncoding:NSUTF8StringEncoding]];
//将其他数据添加到缓冲中
[writer appendBytes:&dataIntlength:sizeof(dataInt)];
[writer appendBytes:&dataFloatlength:sizeof(dataFloat)];
//将缓冲的数据写入到文件中
[writer writeToFile:pathatomically:YES];
//读取数据:
int intData;
float floatData =0.0;
NSString *stringData;
NSData *reader =[NSData dataWithContentsOfFile:path];
stringData =[[NSString alloc] initWithData:[reader subdataWithRange:NSMakeRange(0, [templength])]
encoding:NSUTF8StringEncoding];
[readergetBytes:&intData range:NSMakeRange([temp length], sizeof(intData))];
[readergetBytes:&floatData range:NSMakeRange([temp length] + sizeof(intData),sizeof(floatData))];
1. NSLog(@"stringData:%@ intData:%d floatData:%f", stringData,intData, floatData);