#import <Foundation/Foundation.h>
#define PATH @"/Users/student/Andrew/XCODE_OC/week2/1.txt"
int main(int argc, const char * argv[])
{
@autoreleasepool {
/***************************/
/* OC -week2-day4 */
/* =================== */
/* 文件操作 */
/* =================== */
/***************************/
//文件操作,分为对文件本身操作和文件内容的操作。
/***************************/
/* NSFileManager */
/* --------------------- */
/* 对文件本身进行操作 */
/* --------------------- */
/***************************/
// NSError *error=nil;//装错误信息的指针
//
// NSFileManager *manager=[NSFileManager defaultManager];
//
// /*********************/
// /* 查看一个目录下得内容
// /*********************/
// //【浅度遍历】查看
// NSArray *array=[manager contentsOfDirectoryAtPath:PATH error:&error];//当出现错误时,系统会动将错误信息装入到error指针中,即错误信息,不是程序员来编写的。
//
// if (error) {
// //发生错误
// NSLog(@"%@",error);
// }else
// {
// for (NSString* str in array) {
// NSLog(@"%@",str);
// }
//
// }
//
// //【深度遍历】查看
// NSError *error1=nil;//装错误信息的指针
// NSArray *array1=[manager subpathsOfDirectoryAtPath:PATH error:&error1];
// if (error1) {
// //发生错误
// NSLog(@"%@",error1);
// }else
// {
// for (NSString* str in array1) {
// NSLog(@"%@",str);
// }
//
// }
//
// /*********************/
// /* 创建目录
// /*********************/
//
// NSError *error2=nil;//装错误信息的指针
//
// [manager createDirectoryAtPath:[PATH stringByAppendingPathComponent:@"测试文件创建目录"] withIntermediateDirectories:YES attributes:nil error:&error2];
// //第一个参数是路径
// //第二个参数表示是否携带中间目录,YES,缺少中间目录会自动创建,NO,缺少中间目录会创建失败。
// //第三个参数是文件的属性,默认填写nil
// //第四个参数是存储错误信息的指针地址
//
//
//
// if (error2) {
// //发生错误
// NSLog(@"%@",error2);
// }else
// {
// NSLog(@"创建目录成功");
// }
//
//
// /*********************/
// /* 创建文件
// /*********************/
//
//
// //任何数据都能转成NSData
// NSData *data=[@"阳光明媚" dataUsingEncoding:NSUTF8StringEncoding];
//
// BOOL flag=[manager createFileAtPath:[PATH stringByAppendingPathComponent:@"测试文件创建目录1"] contents:data attributes:nil];
//
// //注意 第一个参数需要 指明文件路径和文件名
//
// if (flag) {
// NSLog(@"创建文件成功!");
// }
// else
// {
// NSLog(@"创建文件失败");
// }
//
//
// /*********************/
// /* 删除文件(目录)
// /*********************/
//
///*
// NSError *error5=nil;
//
// [manager removeItemAtPath:[PATH stringByAppendingPathComponent:@"测试文件创建目录"] error:&error5];
//
// if (error5) {
// //发生错误
// NSLog(@"%@",error5);
// }else
// {
// NSLog(@"删除文件成功");
// }
//
//*/
//
// /*********************/
// /* 拷贝文件(目录)-- 复制
// /*********************/
//
// /*
//
// 注意!!!
//
// 移动,拷贝的目标路径一定要指明移动或拷贝后的的文件名
//
// 例如:文件源路径 /user/student/And/1.txt
// 文件指定路径 /user/student/And/TXT/"1.txt" 一定要指明文件(文件夹)的名字,
//
// */
//
// NSError *error6=nil;
// [manager copyItemAtPath:[PATH stringByAppendingPathComponent:@"测试文件创建目录1"] toPath:[PATH stringByAppendingPathComponent:@"测试文件创建目录2"] error:&error6];
//
// if (error6) {
// //发生错误
// NSLog(@"%@",error6);
// }else
// {
// NSLog(@"拷贝文件成功");
// }
//
//
// /*
//
// 剩下还有其他的对文件本身操作的方法,可以查询文件操作的API文档
//
// */
//
//
/***************************/
/* NSFileHandle */
/* --------------------- */
/* 对文件里内容进行操作 */
/* --------------------- */
/***************************/
//打开文件,生成只读的文件句柄
NSFileHandle *fh=[NSFileHandle fileHandleForReadingAtPath:PATH];//只读方式打开已经存在的文件,文件定 位到起始位置)
/*
+ fileHandleForWritingAtPath: (只写方式打开已经存在的文件,文件定 位到起始位置)
+ fileHandleForUpdatingAtPath:(读写方式打开已经存在的文件,文件定 位到起始位置)
*/
//句柄fh就是文件(硬盘)在内存中的体现(或者叫代表),对句柄进行操作,就是对硬盘中的文件进行操作
//读取文件
//01 一读到低
// NSData *data=[fh readDataToEndOfFile];
//读取指定字节数
NSData *data1=[fh readDataOfLength:13];
//转换为nsstring
NSString *str=[[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];
NSLog(@"%@",str);
[str release];
}
return 0;
}