@interface ViewController ()
@property (nonatomic,strong) NSString *documentsPath;//比较常用的属性,创建为属性并为其写个懒加载
@end

@implementation ViewController

- (NSString *)documentsPath{
    if (!_documentsPath) {
        _documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
    }
    return _documentsPath;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    
}
- (IBAction)createByString:(UIButton *)sender {//这里在页面连接了一个按钮
    //拼接出要创建的文件的路径 **/Documents/testString.txt
    NSString * filePath =[self.documentsPath stringByAppendingString:@"testString.txt"];
    NSString * content = @"16546asdfasdf1a3s21f5用字符串创建的文件";
    //创建文件,并将content内容写进去
    //参数1 : 要写入的文件地址
    //参数2 :atomically : 建议用YES,这样会首先创建一个辅助文件,写入辅助文件成功后,再通过辅助文件写入到filePath中。如果写入辅助文件失败,则不写入filePath中。这样保证不出错。
    //   如果NO,则直接写入filePath,如果写入出错,那么只能写入部分数据
    //atomically:原子性
    //encoding :编码格式,习惯上都用utf8国际编码
    //error :二级指针 如果写文件出错,方法会把错误写入到error指针中
    NSError *error =nil;
    BOOL success = [content writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
    if (success) {
        NSLog(@"写入文件成功:%@",filePath);
    }else{
    
        NSLog(@"写入文件失败:%@",error.userInfo);
        
    }
}

- (IBAction)createByArray:(UIButton *)sender {//这里在页面连接了一个按钮
    NSArray * array = @[@"测试字符串",@20,@[@"test",@30]];
    //拼接出要写入的文件路径
    NSString *filePath = [self.documentsPath stringByAppendingPathComponent:@"testArray.txt"];
    //写入文件
    BOOL success = [array writeToFile:filePath atomically:YES];//这里是数组的创建方法。Dictionary也有同样的写法。
    if (success) {
        NSLog(@"写入数组成功:%@",filePath);
    }else{
        
        NSLog(@"写入数组失败");
        
    }
}
///******注意,每次运行时,路径都将变化。实际上指向的是同一个文件夹,因为苹果公司的保密机制,文件名进行了三十二位的加密。虽然我们看到的文件名不同,但实际上是同一个文件夹。