主要内容:
文件管理
NSData
//
// main.m
// 01-文件管理类
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
/**
文件管理类:这是一个类,专门用来管理文件的
通过单例
*/
//通过类方法得到管理类的对象
NSFileManager *manager = [NSFileManager defaultManager];
NSString *path = @"/Users/qianfeng/Desktop/共享资料/oc第六天/学生资料/";
//通过error可以得知是否成功获得目录里面内容 error:这个参数要写对象指针的地址
NSError *error = nil;
//获得目录下的文件内容 注意:1只能获取一层,2.要给全路径
NSArray *array1 = [manager contentsOfDirectoryAtPath:path error:&error];
if (error) {
NSLog(@"获取失败");
}else{
NSLog(@"%@",array1);
}
//找后缀名为rtf的文件名
for (NSString *name in array1) {
if ([name hasSuffix:@".rtf"]) {
NSLog(@"%@",name);
}
}
//方法二
//取文件的扩展名
for (NSString *name in array1) {
NSString *str = [name pathExtension];
NSLog(@"%@",str);
}
//取路径的各个部分
NSArray *comArr = [path pathComponents];
NSLog(@"%@",comArr);
//取当前目录下的所有文件
//获取当前目录下面所有的文件(当前目录的文件及子文件夹内的文件) 可以获取多层 注意:应该是全路径
NSArray *array2 = [manager subpathsOfDirectoryAtPath:path error:nil];
NSLog(@"%@",array2);
}
return 0;
}
//
// main.m
// 02-创建文件
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
//1.创建一个文件管理类的对象
NSFileManager *manager = [NSFileManager defaultManager];
//创建一个文件
NSString *path = @"/Users/qianfeng/Desktop/共享资料/oc第六天/学生资料/text.txt";
BOOL isEx = [manager fileExistsAtPath:path];
if (isEx) {
NSLog(@"文件名已经存在");
}else{
/**
第一个参数:文件的路径
第二个参数:文件的内容
第三个参数:文件的属性,如果为空,那就是默认的属性
//创建的文件名最好是新的,如果与原来的名字重名,就会将其覆盖
*/
BOOL isSuc = [manager createFileAtPath:path contents:nil attributes:nil];
if (isSuc) {
NSLog(@"成功创建");
}else{
NSLog(@"创建失败");
}
}
//获取当前文件的属性
NSDictionary *dic = [manager attributesOfItemAtPath:path error:nil];
NSLog(@"dic%@",dic);
NSNumber *size = dic[NSFileSize];
//使用方法获取value
int size1 = (int)[dic fileSize];
NSLog(@"%i",[size intValue]);
//创建路径
/**
第一个:要创建的路径
第二个:当为NO时,如果新创建的路径中间增加了原来没有的部分,就会不允许创建 当为YES时,会自动的允许增加,并创建
*/
NSString *path1 = @"/Users/qianfeng/Desktop/共享资料/oc第六天/学生资料/good/text.txt";
BOOL isSuc1 = [manager createDirectoryAtPath:path1 withIntermediateDirectories:YES attributes:nil error:nil];
if (isSuc1) {
NSLog(@"创建路径成功");
}else{
NSLog(@"创建失败");
}
}
return 0;
}
//
// main.m
// 03-文件的移动,删除,拷贝
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
/**
1.创建文件管理类
*/
NSFileManager *manager = [NSFileManager defaultManager];
//拷贝
/**
第一个参数:原路径
第二个参数:现路径 注意:当现路径下面在拷贝前已经有了原路径下的同名文件,就会拷贝失败
*/
NSString *path1 = @"/Users/qianfeng/Desktop/共享资料/oc第六天/学生资料/good/text.txt";
NSString *path2 = @"/Users/qianfeng/Desktop/共享资料/oc第六天/学生资料/good/text1.txt";
BOOL isSuc1 = [manager copyItemAtPath:path1 toPath:path2 error:nil];
if (isSuc1) {
NSLog(@"拷贝成功");
}else{
NSLog(@"失败");
}
//移动
//注意;原路径下的文件消失了,移动到了线路经下面
NSString *path3 = @"/Users/qianfeng/Desktop/共享资料/oc第六天/学生资料/good/text.txt";
NSString *path4 = @"/Users/qianfeng/Desktop/共享资料/oc第六天/学生资料/good/text1.txt/text.txt";
BOOL isSuc2 = [manager moveItemAtPath:path3 toPath:path4 error:nil];
if (isSuc2) {
NSLog(@"移动成功");
}else{
NSLog(@"失败");
}
//删除
BOOL isSuc3 = [manager removeItemAtPath:path4 error:nil];
if (isSuc3) {
NSLog(@"删除成功");
}else{
NSLog(@"失败");
}
}
return 0;
}
//
// main.m
// 04-NSData
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
/**
NSData :表示二进制的数据
原因:存储,传输的数据都是二进制的。
*/
NSString *string = @"iOS study";
//字符串转为NSData类型
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%@",data);
//NSData类型转为字符串型
NSString *newString = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",newString);
}
return 0;
}
//
// main.m
// 05-打开文件的方式
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
/**
oc打开方法:
文件句柄(NSFileHandle) :通过文件句柄操作有关文件内容的事情。
*/
//三种方式:只读,只写,读写
//只读方式打开文件
//1.创建句柄
//NSFileHandle *handle = [[NSFileHandle alloc]init];
//文件的路径
NSString *path3 = @"/Users/qianfeng/Desktop/共享资料/oc第六天/学生资料/方法列表.rtf";
NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:path3];
if (handle) {
NSLog(@"文件存在");
}else{
NSLog(@"不存在");
}
//只写方式打开文件
NSFileHandle *handle2 = [NSFileHandle fileHandleForWritingAtPath:path3];
if (handle2) {
NSLog(@"文件存在");
}else{
NSLog(@"不存在");
}
//读写方式打开文件
NSFileHandle *handle3 = [NSFileHandle fileHandleForUpdatingAtPath:path3];
if (handle3) {
NSLog(@"文件存在");
}else{
NSLog(@"不存在");
}
}
return 0;
}
//
// main.m
// 06-读文件内容
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSString *path3 = @"/Users/qianfeng/Desktop/共享资料/oc第六天/学生资料/方法列表.rtf";
//只读,不能清空
NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:path3];
if (handle) {
NSLog(@"文件存在");
}else{
NSLog(@"不存在");
}
//length c的strlen以字节为单位进行打印 oc的length方法以各国的字符为单位
char *cSr = "iOS好";
NSString *ocSt = @"iOS好";
NSLog(@"cSr:%lu,ocSt:%lu",strlen(cSr),[ocSt length]);
//1.开始进入文件的时候,是从文件的文件首开始读完文件
//2.第一次读:从开始读length长度的字符
NSData *data1 = [handle readDataOfLength:10];
NSLog(@"%@",[[NSString alloc]initWithData:data1 encoding:NSUTF8StringEncoding]);
//第二次读:以上一次的结尾为开始,读取10个字符
NSData *data2 = [handle readDataOfLength:10];
NSLog(@"%@",[[NSString alloc]initWithData:data2 encoding:NSUTF8StringEncoding]);
//第三次读 从上一次结束一直读到末尾
NSData *data3 = [handle readDataToEndOfFile];
NSLog(@"%@",[[NSString alloc]initWithData:data3 encoding:NSUTF8StringEncoding]);
//清空
//[handle truncateFileAtOffset:0];
//回到文件的开始(或者某个位置)
[handle seekToFileOffset:0];
//只能回到开始
[handle offsetInFile];
//到结尾
[handle seekToEndOfFile];
//关闭文件(省略)
[handle closeFile];
}
return 0;
}
//
// main.m
// 07-写文件内容
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
//注意:在写入内容的时候,使用文件路径:1.尽量使用英文命名文件夹 2.后缀名不要使用。rtf
NSString *path3 = @"/Users/qianfeng/Desktop/testtttt.rtf";
//只写
NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:path3];
if (handle) {
NSLog(@"文件存在");
}else{
NSLog(@"不存在");
}
//为了防止将原来的内容覆盖掉,所以1.要先到文件内容的末尾 2.开始写
//到内容的末尾
[handle seekToEndOfFile];
NSData *data = [@"our story" dataUsingEncoding:NSUTF8StringEncoding];
//写数据 注意:将数据写入缓存
[handle writeData:data];
//将数据写入磁盘
[handle synchronizeFile];
//关闭文件(可以省略)
[handle closeFile];
}
return 0;
}
//
// main.m
// 02-NSDateFomtter
//
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
/**
NSDateFormatter:时间转换器,作用:以规定的某种格式为标准,将字符串与NSDate类型数据之间进行转化
*/
//创建一个NSDateFormatter类型的对象
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
//@"1985-09-02 23:12:12"
//确定标准
//HH表示24小时制 hh表示12小时制
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *date = [NSDate date];
//将日期转化为字符串
NSString *string = [formatter stringFromDate:date];
NSLog(@"%@",string);
//字符串转为日期
NSDate *newDate = [formatter dateFromString:string];
NSLog(@"%@",newDate);
}
return 0;
}