———————————————————————————————————————————
从文件中读写字符串(直接读写/通过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;
}

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

Objective-C 【从文件中读写字符串(直接读写/通过NSURL读写)】的更多相关文章

  1. 在文件夹中 的指定类型文件中 查找字符串(CodeBlocks+GCC编译,控制台程序,仅能在Windows上运行)

    说明: 程序使用 io.h 中的 _findfirst 和 _findnext 函数遍历文件夹,故而程序只能在 Windows 下使用. 程序遍历当前文件夹,对其中的文件夹执行递归遍历.同时检查遍历到 ...

  2. 使用C#程序处理PowerPoint文件中的字符串

    最近, 有同事偶然发现Microsoft  Office PowerPoint可以被看作是一个压缩包,然后通过WinRAR解压出来一组XML文件.解压出来的文件包括: 一个索引文件名称为:[Conte ...

  3. Linux命令行批量替换多文件中的字符串【转】

    Linux命令行批量替换多文件中的字符串[转自百度文库] 一种是Mahuinan法,一种是Sumly法,一种是30T法分别如下: 一.Mahuinan法: 用sed命令可以批量替换多个文件中的字符串. ...

  4. Java基础知识强化之IO流笔记52:IO流练习之 把一个文件中的字符串排序后再写入另一个文件案例

    1. 把一个文件中的字符串排序后再写入另一个文件 已知s.txt文件中有这样的一个字符串:"hcexfgijkamdnoqrzstuvwybpl" 请编写程序读取数据内容,把数据排 ...

  5. linux上查找文件存放地点和文件中查找字符串方法

    一.查找文件存放地点 1.locate 语法:locate <filename> locate命令实际是"find -name"的另一种写法,但是查找方式跟find不同 ...

  6. c++ 读取不了hdf5文件中的字符串

    问题描述: 在拿到一个hdf5文件,想用c++去读取文件中的字符串,但是会报错:read failed ps: c++读取hdf5的字符串方法见:https://support.hdfgroup.or ...

  7. 新手C#s.Split(),s.Substring(,)以及读取txt文件中的字符串的学习2018.08.05

    s.split()用于字符串分割,具有多种重载方法,可以通过指定字符或字符串分割原字符串成为字符串数组. //s.Split()用于分割字符串为字符串数组,StringSplitOptions.Rem ...

  8. 使用 awk 过滤文本或文件中的字符串

    当我们在 Unix/Linux 下使用特定的命令从字符串或文件中读取或编辑文本时,我们经常需要过滤输出以得到感兴趣的部分.这时正则表达式就派上用场了. 什么是正则表达式? 正则表达式可以定义为代表若干 ...

  9. 利用PushbackReader读取文件中某个字符串之前的内容

    package File; import java.io.FileReader; import java.io.IOException; import java.io.PushbackReader; ...

  10. Python从文件中读取字符串,用正则表达式匹配中文字符的问题

    2013-07-27 21:01:37|           在Windows下,用Python从.txt文件中读取字符串,并用正则表达式匹配中文,在网上看了方法,用的时候发现中文没有被匹配.     ...

随机推荐

  1. C语言排序算法

    (1)“冒泡法” 冒泡法大家都较熟悉.其原理为从a[0]开始,依次将其和后面的元素比较,若a[0]>a[i],则交换它们,一直比较到a[n].同理对a[1],a[2],...a[n-1]处理,即 ...

  2. leanchat-android

    Original: https://github.com/lzwjava/leanchat-android Backup: https://github.com/eltld/leanchat-andr ...

  3. iframe自适应高度的多种方法小结

    转自:http://www.jb51.net/article/15780.htm 不带边框的iframe因为能和网页无缝的结合从而不刷新页面的情况下更新页面的部分数据成为可能,可是 iframe的大小 ...

  4. cocos2d win7 安卓环境配置开发

    相关工具 下载 Android SDK 下载和安装 Android NDK版本不要选r9的.用r8e!r9会报错 下载安装JDK版本是 jdk-7u13-windows-x64.exe 下载和安装Cy ...

  5. Linux开机执行顺序

      1. 加载 BIOS 的硬件信息,并取得第一个开机装置的代号: 2. 读取第一个开机装置的 MBR 的 boot Loader (亦即是 lilo, grub 等等) 的开机信息: 3. 加载 K ...

  6. flume1.5.2安装与简介

    关于flume的简介看参考:http://www.aboutyun.com/thread-7415-1-1.html 其实一张图就简单明了了 简单安装: 1.下载解压 ... 2.配置JDK,flum ...

  7. org.apache.hadoop.conf-Configurable

    从包名可以看出这个包里面都是配置相关的类:从类名上可以看出这是一个接口,或者说配置类接口.内容很少. package org.apache.hadoop.conf; /** Something tha ...

  8. HTML常用标签和属性大全

    html标签< <marquee>...</marquee>普通卷动 <marquee behavior=slide>...</marquee>滑 ...

  9. Android动画主要包含补间动画(Tween)View Animation、帧动画(Frame)Drawable Animation、以及属性动画Property Animation

    程序运行效果图: Android动画主要包含补间动画(Tween)View Animation.帧动画(Frame)Drawable Animation.以及属性动画Property Animatio ...

  10. SSAS中Cube的结构

    在SSAS(SQL Server Analysis Services)中构建Cube和编写MDX的时候,我们很容易被一些名词弄糊涂,比如:Dimension(维度),Measures Dimensio ...