zoukankan      html  css  js  c++  java
  • Objective-C 【从文件中读写字符串(直接读写/通过NSURL读写)】

    ———————————————————————————————————————————
    从文件中读写字符串(直接读写/通过NSURL读写)

    #import <Foundation/Foundation.h>

    int main(int argc, const char * argv[]) {
        @autoreleasepool {
    //        *************直接将字符串写入文件***************
            NSString *str1=[[NSString alloc]init];
            
            str1=@"lalalalala";
            //不通过NSURL,而直接将字符串str1写入某地址文件的时候,只要创建完成str1,那么直接用str1去调用writeToFile方法就可以了。注意一下,在地址的地方要以字符串的格式写出,而且要自己创建文件(写入字符串的文件名要自己来写),还有一点,在原子性(atomically)一栏写的是 是否选择多线程同时进行管理机制,所以是写YES或者是NO,而不是atomic和nonatomic。最后的地方,出错信息是否处理,不处理的话我们要填nil,而不是别的!
            
            //我们选择处理错误信息的时候,注意这里需要定义一个二级指针来接受错误信息,所以说我们要牢记二级指针的创建方式
            NSError *err;//直接创建即可,没什么复杂的别的东西。(用的是NSError类,这里要牢记)
            
            //                              路径                  原子性            编码格式(一般UTF-8)
            //        str1 writeToFile:<#(NSString *)#> atomically:<#(BOOL)#> encoding:<#(NSStringEncoding)#> error:<#(NSError *__autoreleasing *)#>//接收错误信息(可以选择nil,也就是不处理错误信息)

            //注意:直接往文件里写字符串的时候,文件的地址是不用加 协议头的
           [str1 writeToFile:@"/Users/wangzhongyao/Desktop/1.txt" atomically:NO encoding:NSUTF8StringEncoding error:&err];//仔细观察,这里是对一个指针变量取地址,也就是二级指针
            if(err)//如果err中有值了,说明发生了错误,也就可能写入文件失败
            {
                NSLog(@"写入失败");
            }
            else//如果err中和创建的时候一样是nil那么就是没有产生错误,也就是写入文件成功
            {
                NSLog(@"写入成功");
            }
            
    //        *************直接从文件中读取字符串***************
            //创建一个用来接受文件中字符串信息的字符串
            NSString *str11=[NSString stringWithContentsOfFile:@"/Users/wangzhongyao/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil];
            //直接打印字符串
            NSLog(@"%@",str11);
            
    //        *************通过NSURL将字符串写入文件***************
            NSString *str2=[[NSString alloc]init];
            str2=@"hahahahaha";
            
            //用NSURL类去创建一个对象来存放我们要写入的文件地址,然后用NSURL去调用该类的类方法URLWithString(需要一个方法来将字符串类型的地址存到NSURL类型的对象中)
            //注意这里一旦动用了地址,那么一定要加 协议头(file://)
            //注意:基本的URL包含 协议、主机域名(服务器名称、IP地址)、路径
            //可以简单的认为:    URL = 协议头://主机域名/路径
            NSURL *url1=[NSURL URLWithString:@"file:///Users/wangzhongyao/Desktop/2.txt"];
            
            //因为这里是写到URL里,所以说我们调用的方法就是writeToURL咯
            [str2 writeToURL:url1 atomically:NO encoding:NSUTF8StringEncoding error:nil];
            
    //        *************通过NSURL从文件中读取字符串***************
            //创建一个用来接受文件地址的NSURL类型的对象(当然直接用上面创建时的url1也行)
            NSURL *url2=[NSURL URLWithString:@"file:///Users/wangzhongyao/Desktop/2.txt"];
            //创建一个字符串对象str22来接受文件中的字符串信息
            NSString *str22=[NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil];
            
            NSLog(@"%@",str22);
            
        }
        return 0;
    }


    ———————————————————————————————————————————

  • 相关阅读:
    联想Thinkpad L460安装Win7 64位
    2019牛客暑期多校训练营(第六场)E 构造、原图是补图的同构图
    网络流24题 P2766 最长不下降子序列问题
    The 2019 ICPC China Nanchang National Invitational and International Silk-Road Programming Contest B、H
    P4781 拉格朗日插值
    P4717 快速沃尔什变换FWT 模板题
    2019CCPC-江西省赛C题 HDU6569 GCD预处理+二分
    Gym 101917 E 简单计算几何,I 最大流
    51 Nod 1238 最小公倍数之和 V3 杜教筛
    51Nod 1237 最大公约数之和 V3 杜教筛
  • 原文地址:https://www.cnblogs.com/wzy294250051/p/4795746.html
Copyright © 2011-2022 走看看