Object-C-NSFileHandle
NSFileHandle 类中得到方法可以很方便的对文件数据进行读写、追加,以及偏移量的操作。
NSFileHandle 基本步骤:
1、打开文件,获取一个NSFileHandle 对象
2、对打开NSFileHandle的文件对象进行I/O操作
3、关闭文件对象
+(NSFileHandle *)fileHandleForReadingAtPath:path 打开一个文件用于读入
+(NSFileHandle *)fileHandleForWritingAtPath:path打开一个文件用于写入
+(NSFileHandle *)fileHandleForUpdatingAtPath:path 打开一个文件用于读写
-(NSData *)readDataToEndOfFile读取其余的数据直到文件的末尾(最多UINT_MAX字节)
-(NSData *)readDataOfLength:(NSUInteger)bytes从文件中读取指定字节的内容
-(void)writeData:data 将data写入文件
-(unsigned long long)offsetInFile 获取当前偏移量
-(void)seekToFileOffset:offset 设置偏移量
-(unsigned long long)seekToEndOfFile 将偏移量定位到文件的末尾
-(void)truncateFileAtOffset:offset将文件的长度设置为offset字节
-(void)closeFile关闭文件
NSFileManager *fm=[NSFileManager defaultManager];
NSString *outFilePath = @"outfile.txt";
NSString *contentStr =@"这是使用NSFileManager创建的一个文件";
if([fm createFileAtPath:outFilePath contents:[contentStr dataUsingEncoding:NSUTF8StringEncoding] attributes:nil])
{
NSLog(@"create success");
}else{
NSLog(@"create Fail");
}
NSString *infilePath=@"inFile.txt";
if([fm createFileAtPath:infilePath contents:nil attributes:nil]){
NSLog(@"create success!");
}
NSFileHandle *outHandle =[NSFileHandle fileHandleForReadingAtPath:outFilePath];
NSFileHandle *inHandle=[NSFileHandle fileHandleForReadingAtPath:infilePath];
if(outHandle==nil||inHandle==nil)
{
NSLog(@"请确认文件是否存在!");
}else{
NSData *data=[outHandle readDataToEndOfFile];
//clear
[inHandle truncateFileAtOffset:0];
[inHandle writeData:data];
[outHandle closeFile];
[inHandle closeFile];
}
//文件追加内容
NSString *infilePath=@"inFile.txt";
NSFileHandle *updateHandle =[NSFileHandle fileHandleForUpdatingAtPath:infilePath];
NSString *str=@"追加内容";
//偏移量 刚开始的时候在开头
[updateHandle seekToEndOfFile];
[updateHandle writeData:[str dataUsingEncoding:NSUTF8StringEncoding]];
[updateHandle closeFile];
Object-C-NSFileHandle的更多相关文章
- Object C学习笔记26-文件管理(二)
上一篇简单的介绍了如何获取文件属性,删除,拷贝文件等,本文继续记录Object C中文件IO操作. 一. 获取文件的执行主目录 在Object C中提供了一个方法 NSHomeDirectory() ...
- CoreCLR源码探索(一) Object是什么
.Net程序员们每天都在和Object在打交道 如果你问一个.Net程序员什么是Object,他可能会信誓旦旦的告诉你"Object还不简单吗,就是所有类型的基类" 这个答案是对的 ...
- JavaScript Object对象
目录 1. 介绍:阐述 Object 对象. 2. 构造函数:介绍 Object 对象的构造函数. 3. 实例属性:介绍 Object 对象的实例属性:prototype.constructor等等. ...
- javascript之Object.defineProperty的奥妙
直切主题 今天遇到一个这样的功能: 写一个函数,该函数传递两个参数,第一个参数为返回对象的总数据量,第二个参数为初始化对象的数据.如: var o = obj (4, {name: 'xu', age ...
- c# 基础 object ,new操作符,类型转换
参考页面: http://www.yuanjiaocheng.net/webapi/config-webapi.html http://www.yuanjiaocheng.net/webapi/web ...
- APEX:对object中数据进行简单处理?
在Salesforce中,常常要对各种数据进行处理,已满足业务逻辑.本篇文章会介绍如何实现从object获取数据,然后将取得的数据进行一系列简单处理. 第一步:SongName__c 是一个新建的ob ...
- 笔记:Memory Notification: Library Cache Object loaded into SGA
笔记:Memory Notification: Library Cache Object loaded into SGA在警告日志中发现一些这样的警告信息:Mon Nov 21 14:24:22 20 ...
- Selenium的PO模式(Page Object Model)[python版]
Page Object Model 简称POM 普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driv ...
- Object是什么
Object是什么 .Net程序员们每天都在和Object在打交道如果你问一个.Net程序员什么是Object,他可能会信誓旦旦的告诉你"Object还不简单吗,就是所有类型的基类" ...
- a different object with the same identifier value was already associated with the session:
hibernate操作: 实例化两个model类,更新时会提示 a different object with the same identifier value was already assoc ...
随机推荐
- Unity3D 记第二次面试
2014-03-10 忍不住投递了几份简历大概有20个,总共收到面试电话2个,十分之一.一个是11号下午4点面试另一个是12号下午3点面试(后来没去至于原因下面有)12号没去,为什么?因为招聘要求“精 ...
- 8.28 jQuery
2018-8-28 18:25:27 jQuery 参考:https://www.cnblogs.com/liwenzhou/p/8178806.html 2018-8-28 19:53:19 还是讲 ...
- Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises)
A. Fraction 题目链接:http://codeforces.com/contest/854/problem/A 题目意思:给出一个数n,求两个数a+b=n,且a/b不可约分,如果存在多组满足 ...
- Metricbeat 的使用
目标 统计并展示系统的信息 cpu, 内存等 (当然metricbeat能收集的信息种类还很多) 前提 版本: 5.x 已经安装了ELK (elasticsearch, logstash (可选), ...
- Taking a peek inside with the Actuator
Taking a peek inside with the Actuator <dependency> <groupId>org.springframework.boot< ...
- 洛谷P2634 聪聪可可 [国家集训队] 点分治/dp
正解:点分治/dp 解题报告: 传送门! 这题有两个做法,都是我不擅长的就都说下好了QAQ 首先这题一看到就会想到点分治? 也确实可以用点分治,那就直接用点分治鸭 每次求出到当前根距离余数为0,1,2 ...
- openssl配置
1.update openssl yum update openssl 2.修改openssl配置 vim /etc/ssh/sshd_config RSAAuthentication yesPubk ...
- Linux文件目录介绍及文件颜色区别
文件颜色代表含义: 蓝色表示目录: 绿色表示可执行文件: 红色表示压缩文件: 浅蓝色表示链接文件: 白色表示其他文件: 黄色是设备文件,包括block, char, fifo. 常见目录解释 Linu ...
- 【点击模型学习笔记】Modeling contextual factors of click rates_MS_AAAI2007
概要 并没有觉得这是篇高质量的文章,非常奇怪为什么可以发表在AAAI上面. 文章的创新点比較单薄:在传统点击率预測模型(LR)的基础上增加了两类新的特征,一个是位置特征.一个是广告上下文特征--即和它 ...
- android Thread
1.Thread的三种形式 第一种: class MyThread extends Thread{ @Override public void run(){ Log.d("MainActiv ...