`
iaiai
  • 浏览: 2196596 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

objective-c 读取文本文件编码方式(stringWithContentsOfFile和initWithContentsOfFile)

 
阅读更多
NSString类提供了很多方法来从文件或者URL中读取数据.
通常情况下,你是知道文件的编码的,读取数据就很容易.
如果你有一个文本(plaintext), 但是不知道它的编码, 那就有点困难了. 你应该避免把自己置于这种境地.

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

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

这几个方法将猜试 资源的编码,如果成功,就通过引用返回使用的编码.
如果失败,就默认使用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解析XML与JSON数据格式的方法

    在iOS开发中,Objective-C是主要的编程语言之一,它提供了强大的XML和JSON解析功能。本文将详细介绍如何在Objective-C中解析这两种常见的数据格式。 首先,让我们关注XML(Extensible Markup Language),它是一种...

    iOS NSString详细操作

    2. **从文件或URL中读取内容**: - **从文件中读取**: ```objective-c NSString *path = @"/path/to/file.txt"; NSString *content = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8String...

    ios中文开发教程资料全收录

    在Objective-C中,通常使用以下两个函数来进行文件的读取和写入操作: - `- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag`: 该方法用于将对象写入指定路径的文件。 - `- (id)initWithContentsOfFile:...

    IOS开发常用代码.docx

    2. 从文件读取和写入字符串: - 使用`initWithContentsOfFile:`方法读取文件中的字符串:`NSString *path = @"astring.text"; NSString *astring = [[NSString alloc] initWithContentsOfFile:path];` - 写字符串...

    cut-png_plist文件转换

    1. **读取`plist`文件**:程序首先需要解析`plist`文件,获取每个PNG子图在大图中的位置和大小。这通常通过Objective-C或Swift的`PropertyListSerialization`类来实现。 2. **加载图集**:使用`UIImage`类的`...

    试读样章 第三章

    ### 使用Objective-C处理数组与字典 #### 3.1 创建数组 **问题**: 应用需要在列表中组织对象。 **解决方案**: Objective-C提供了两种Foundation类来创建对象列表,即`NSArray`与`NSMutableArray`。如果你希望创建...

    选择器 使用plist文件

    总之,“选择器 使用plist文件”的主题展示了如何结合Objective-C的选择器机制与.plist文件来动态加载并显示数据,这在处理用户界面,尤其是需要显示可滚动选项列表的场景中非常常见。通过这种方式,开发者可以将...

    iOS开发常用代码

    在iOS开发中,NSString是Objective-C中的核心类,用于处理文本数据。NSString对象是不可变的,意味着一旦创建,其内容就不能更改。以下是一些在iOS开发中常用的NSString相关代码和知识点: ### 1. 创建NSString对象...

    最新-汽车品牌及车型plist.zip

    在处理这个Plist文件时,开发者可能需要用到Objective-C或Swift的内置函数,如`NSDictionary`和`NSArray`的`initWithContentsOfFile:`方法来加载文件内容,或者使用`PropertyListSerialization`框架进行序列化和反...

    plist文件是标准的xml文件

    plist文件是标准的xml文件 A).写入plist文件:(Dictionary/Array) NSMutableDictionary* dict = [ [ NSMutableDictionary alloc ] initWithContentsOfFile:@"/Sample.plist" ]; [ dict setObject:@"Yes" forKey:@...

    txt阅读器ios

    我们可以使用`FileManager`类来读取文件内容,然后使用`NSString`的`initWithContentsOfFile:`方法将文件内容加载到内存。为了处理大文件,可能需要分块读取,避免一次性加载整个文件导致内存压力过大。 接着,实现...

    iphone存储用法汇总

    从给定的文件标题“iPhone存储用法汇总”和描述“PDF中包含有iOS数据的存储类型详细介绍”,我们可以深入探讨iOS开发中常见的数据存储技术,特别是对于基础数据类型的使用,如字符串、数组和字典。以下是对这些核心...

    ios字符串处理

    Objective-C中的NSString类提供了丰富的功能来创建、操作和管理字符串。以下是对标题和描述中提到的知识点的详细解释: 1. **创建常量字符串**: 使用`@""`语法创建NSString的常量,例如`NSString *astring = @...

    tableView文件保存demo

    - **加载数据**:应用启动时,会读取沙盒中的.plist文件,使用`initWithContentsOfFile:`方法反序列化数据并初始化数据源数组。 最后,处理程序意外退出时的数据保存问题。为了防止因应用崩溃或系统突然退出导致未...

    iOS 沙盒图片保存读取实例

    - 保存和读取文件时,确保路径的正确性,否则可能导致找不到文件。 - 文件操作应处理可能出现的异常,比如文件不存在、无权限等问题。 - 保存到Documents目录的文件会被iTunes同步,适合保存用户的重要数据。对于...

    iOS中几种数据持久化方案 --X枫林1

    - 读取:同样通过文件路径,使用`NSArray`或`NSDictionary`的`initWithContentsOfFile:`方法读取数据。 2. **Preference(偏好设置)**: - 使用方法:偏好设置通常用于保存应用设置,如用户偏好。可以通过`...

    iOS应用中存储用户设置的plist文件的创建与读写教程

    在iOS应用开发中,plist文件(Property List)是常用的数据存储方式,特别是在处理用户设置时。本文将深入探讨如何在iOS应用中创建、读取和写入用户设置的plist文件。 1. **什么是plist文件?** plist文件是苹果...

    iOS中plist文件读写

    读取plist文件: 1. 使用`NSBundle`类获取资源路径:可以使用`mainBundle`属性获取到应用的主bundle路径,然后拼接plist文件名,得到完整的plist文件路径。 2. 使用`NSDictionary`或`NSArray`的`...

    ImgSizeFromFile-master.zip

    这个项目名为"ImgSizeFromFile",表明它提供了一种高效的方法,只需读取图像文件的头部信息,就能确定图像的类型(如JPEG、PNG等)及其宽度和高度。 描述中的“不需使用图片文件生成UIImage”意味着该方法不会像...

    JoyiOSMyFocus2

    `JoyiOSMyFocus2`项目显然涉及到对`plist`文件的读取和展示,这在iOS应用中常见于配置文件、用户设置或者简单的数据存储。下面将详细解释`plist`文件的原理、读取方法以及如何在iOS应用中进行显示。 1. **Plist文件...

Global site tag (gtag.js) - Google Analytics