objective-c 读取文本文件内容(stringWithContentsOfFile和initWithContentsOfFile)

本文主要是介绍objective-c 读取文本文件内容(stringWithContentsOfFile和initWithContentsOfFile),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NSString类提供了很多方法来从文件或者URL中读取数据.
通常情况下,你是知道文件的编码的,读取数据就很容易.
如果你有一个文本(plaintext), 但是不知道它的编码, 那就有点困难了.

从已知编码的文件读取数据
可以使用 stringWithContentsOfFile 
:encoding:error 或者相应的init函数 (initWithContentsOfFile:encoding:error) 
如果使用不指定编码的stringWithContentsOfFile: 来读取文件, 可能会丢失信息或者损坏数据 

对 于未知编码的文件
最好的方法是保证有一种机制来纠正不可避免的错误. 比如,Apple的Mail和Safari应用有个菜单,TextEdit也允许用户用指定的编码重新打开文件.
如果你想在缺少编码信息的情况下,猜出 编码,可以使用

stringWithContentsOfFile:usedEncoding:error:或者 initWithContentsOfFile:encoding:error: 方法

例如:
NSString *str=[NSString stringWithContentsOfFile :@"/Users/stjy/Desktop/zhudongxue/oc部分/oc自己练习/查找本地文件内容/查找本地文件内容/File1" encoding:NSUTF8StringEncoding error:nil];
       NSLog(@"%@",str);

NSString *str2=[[NSString alloc]initWithContentsOfFile:@"/Users/stjy/Desktop/zhudongxue/oc部分/oc自己练习/查找本地文件内容/查找 本地文件内容/File1"encoding:NSUTF8StringEncoding error:nil];
       NSLog(@"%@",str2);


这 几个方法将猜试 资源的编码,如果成功,就通过引用返回使用的编码.
如果失败,就默认使用UTF-8的编码
如果再次失败,就使用一种合适的古老编码, “合适”的意思,在这里依赖环境,它可能是默认的C String编码,也可能是Windows Latin1编码 

最后,你还可以试试用 NSAttributedString’ 方法 来猜编码 
stringWithContentsOfFile: 方法
如果内容以Unicode的BOM开始(U+FEFF或者U+FFFE),那么解释这个文本内容为Unicode 字符.
如果以UTF-8的BOM(EFBBBF)开始, 就解释为UTF-8
否则,默认将内容解释为C字符串. 

因为默认的C String编码可能会随着用户的配置而改变, 除非你使用Unicode或者UTF-8编码,否则就不要使用这种方法 

相 对于从文件读取数据,写是比较简单的
writeToFile:atomically:encoding:error:
你必须指定应该使用的编码,选择 是否自动写资源
如果你不选择自动写入, 内容被直接写入到指定的文件. 否则,首先写到一个辅助文件,然后辅助文件被改名为指定的文件.iphone读取文本文件

这篇关于objective-c 读取文本文件内容(stringWithContentsOfFile和initWithContentsOfFile)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043903

相关文章

Springboot配置文件相关语法及读取方式详解

《Springboot配置文件相关语法及读取方式详解》本文主要介绍了SpringBoot中的两种配置文件形式,即.properties文件和.yml/.yaml文件,详细讲解了这两种文件的语法和读取方... 目录配置文件的形式语法1、key-value形式2、数组形式读取方式1、通过@value注解2、通过

Qt实现对Word网页的读取功能

《Qt实现对Word网页的读取功能》文章介绍了几种在Qt中实现Word文档(.docx/.doc)读写功能的方法,包括基于QAxObject的COM接口调用、DOCX模板替换及跨平台解决方案,重点讨论... 目录1. 核心实现方式2. 基于QAxObject的COM接口调用(Windows专用)2.1 环境

在C#中读取文件的六种主流方法详解

《在C#中读取文件的六种主流方法详解》在C#中读取文件有多种方法,不同方式适用于不同场景(小型文件、大型文件、文本文件或二进制文件),本文给大家介绍了6种主流方法以及其适用场景,需要的朋友可以参考下... 目录方法1:File.ReadAllText(读取整个文本文件)方法2:File.ReadAllLin

Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)

《Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)》在职场中,Word文档是公认的好伙伴,但你有没有被它折磨过?批量生成合同、制作报告以及发放证书/通知等等,这些重复、低效... 目录重复性文档制作,手动填充模板,效率低下还易错1.python-docx入门:Word文档的“瑞士

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

java读取excel文件为base64实现方式

《java读取excel文件为base64实现方式》文章介绍使用ApachePOI和EasyExcel处理Excel文件并转换为Base64的方法,强调EasyExcel适合大文件且内存占用低,需注意... 目录使用 Apache POI 读取 Excel 并转换为 Base64使用 EasyExcel 处

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定