NSFileHandle操作文件内容

2024-04-02 11:48
文章标签 操作 内容 nsfilehandle

本文主要是介绍NSFileHandle操作文件内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.读文件指定个数的内容

#define FILEPATH @"/Users/test/Desktop/newfile.txt"
NSFileHandle * fh = [NSFileHandle fileHandleForReadingAtPath:FILEPATH];
if(nil != fh)
{NSData * data = [fh readDataOfLength:5]; //读5个字符NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];NSLog(@"%@", str);
}

注:NSFileHandle相当于C语言中的FILE指针,那么读文件就相当于fopen函数中使用“r”作为打开文件模式。既然它与C语言类似,那读文件的时候也会有一个内部的读文件指针。当读完5个字符后,读文件指针已经被移动到了第五个字符后,如果再读字符,那么就从第六个字符开始了。


2.读文件全部内容

NSFileHandle * fh = [NSFileHandle fileHandleForReadingAtPath:FILEPATH];
if(nil != fh)
{NSData * data = [fh readDataToEndOfFile]; //读全部内容NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];NSLog(@"%@", str);
}
注:这里要注意的是,如果文件内容过大的话,一下子都读到内存中,可能会造成内存崩溃的。


3.写文件

NSFileHandle * fh = [NSFileHandle fileHandleForWritingAtPath:FILEPATH];
if(nil != fh)
{[fh writeData:[@"hello" dataUsingEncoding:NSUTF8StringEncoding]];
}
注:写文件函数相当于fopen函数中使用“w”作为打开文件模式。但它不同的是,如果文件不存在,它不会创建。并且,如果源文件存在的话,它会从文件起始位置开始写,将原来的内容进行覆盖。那如何清理原内容,然后重新写信息呢,请看下面的方法。


4.将源文件内容清空,然后写文件

NSFileHandle * fh = [NSFileHandle fileHandleForWritingAtPath:FILEPATH];
if(nil != fh)
{[fh truncateFileAtOffset:0]; //截断源文件,将文件内容大小截成零[fh writeData:[@"hello" dataUsingEncoding:NSUTF8StringEncoding]];
}
注意:有人说了,不想将内容清空,要在原来的基础上添加新内容,相当于fopen函数中使用“a”作为打开文件的模式。


5.在源文件内容后面继续写文件

NSFileHandle * fh = [NSFileHandle fileHandleForWritingAtPath:FILEPATH];
if(nil != fh)
{[fh seekToEndOfFile]; //将指针移到文件末位[fh writeData:[@", world!" dataUsingEncoding:NSUTF8StringEncoding]];
}




这篇关于NSFileHandle操作文件内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Redis中管道操作pipeline的实现

《Redis中管道操作pipeline的实现》RedisPipeline是一种优化客户端与服务器通信的技术,通过批量发送和接收命令减少网络往返次数,提高命令执行效率,本文就来介绍一下Redis中管道操... 目录什么是pipeline场景一:我要向Redis新增大批量的数据分批处理事务( MULTI/EXE

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学