- 转自http://www.it165.net/pro/html/201402/9100.html
- NSFileHandle
NSFileManager类主要对于文件的操作(删除,修改,移动,赋值等等)
NSFileHandle类主要对文件的内容进行读取和写入操作
NSFileHandle处理文件的步骤
1:创建一个NSFileHandle对象
2:对打开的文件进行I/O操作
3:关闭文件对象操作
常用处理方法
01.
+ (id)fileHandleForReadingAtPath:(NSString *)path;
//打开一个文件准备读取
02.
+ (id)fileHandleForWritingAtPath:(NSString *)path;
//打开一个文件准备写入
03.
+ (id)fileHandleForUpdatingAtPath:(NSString *)path;
//打开一个文件可以更新(读取,写入)
04.
- (NSData *)availableData;
//返回可用的数据
05.
- (NSData *)readDataToEndOfFile;
//从当前的节点位置读取到文件末尾
06.
- (NSData *)readDataOfLength:(NSUInteger)length;
//从当前的节点位置开始读取指定长度的数据
07.
- (
void
)writeData:(NSData *)data;
//写入数据
08.
- (unsigned
long
long
)offsetInFile;
//获取当前文件的偏移量
09.
- (unsigned
long
long
)seekToEndOfFile;
//跳转到文件结尾
10.
- (
void
)seekToFileOffset:(unsigned
long
long
)offset;
//跳转到指定文件的指定的偏移量的位置
11.
- (
void
)truncateFileAtOffset:(unsigned
long
long
)offset;
//设置文件长度
12.
- (
void
)synchronizeFile;
//文件同步
13.
- (
void
)closeFile;
//关闭文件
实例代码
1(对文件进行加入数据:):
@autoreleasepool {
01.
NSString *homePath=NSHomeDirectory();
02.
NSLog(@
"%@"
,homePath);
03.
04.
NSString *filePath=[homePath stringByAppendingFormat:@
"/Desktop/testfile"
];
05.
NSLog(@
"%@"
,filePath);
06.
NSFileHandle *fileHandle=[NSFileHandle fileHandleForUpdatingAtPath:filePath];
07.
08.
[fileHandle seekToEndOfFile];
09.
NSString *[email protected]
"测试加入的数据为"
;
10.
NSData *data=[str dataUsingEncoding:NSUTF8StringEncoding];
11.
[fileHandle writeData:data];
12.
[fileHandle closeFile];
13.
}
14.
return
0
;
2:对文件中的数据进行定位:
1.
NSString *homePath=NSHomeDirectory();
2.
NSString *filePath=[homePath stringByAppendingFormat:@
"/Desktop/testfile"
];
3.
NSFileHandle *fileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath];
4.
NSUInteger length= [fileHandle availableData].length;
5.
[fileHandle seekToFileOffset:length/
2
];
6.
NSData *data=[fileHandle readDataToEndOfFile];
7.
NSString *str=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
8.
NSLog(@
"%@"
,str);
1.
1.
1.
[特别讲一下NSData类的一些方法]
1.
1.
3
:复制文件中的数据
1.
1.
//复制文件 NSString *homePath=NSHomeDirectory(); NSString *filePath=[homePath stringByAppendingFormat:@"/Desktop/testfile"]; //NSFileHandle *fileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath]; NSString *targetPath=[homePath stringByAppendingFormat:@"/Desktop/outfile"]; NSFileManager *fileManager=[NSFileManager defaultManager]; BOOL result=[fileManager createFileAtPath:targetPath contents:nil attributes:nil]; if(result){ NSLog(@"create success!"); } NSFileHandle *inFileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath]; NSFileHandle *outFileHandle=[NSFileHandle fileHandleForWritingAtPath:targetPath]; NSData *inData=[inFileHandle availableData]; //读出文件中所有的数据 //下面开始进行写文件 [outFileHandle writeData:inData]; [inFileHandle closeFile]; [outFileHandle closeFile];
Objective-C OC中文件读取类(NSFileHandle)介绍和常用使用方法
时间: 2024-11-05 11:19:39
Objective-C OC中文件读取类(NSFileHandle)介绍和常用使用方法的相关文章
OC中文件读取类(NSFileHandle)介绍和常用使用方法
NSFileHandle NSFileManager类主要对于文件的操作(删除,修改,移动,赋值等等) //判断是否有 tagetPath 文件路径,没有就创建 NSFileManager *fileManage = [NSFileManager defaultManager]; BOOL success = [fileManage createFileAtPath:tagetPath contents:nil attributes:nil]; if (success) { NSLog(@"cr
CSV文件读取类
最近项目中,经常需要读取Csv文件.基本步骤是: (1)按行读取 (2)然后将一行数据按逗号,分割为字符串数组 (3)将各列字符串转换成相应类型的数据 ,如int double类型 写了一个简单的Csv文件读取类,方便使用,可以按列名或列索引读取数据.将字符串转换成数字变量使用的是stringstream类. 如下: #ifndef CSV_READER_H_ #define CSV_READER_H_ #include <vector> #include <map> #inclu
node.js中文件读取方式中流方式
1.node.js中文件读取流方式: var fs=require("fs"); var data; var s1=fs.createReadStream("input.txt"); s1.on("data",function(txt){ data+=txt; }) s1.on("end",function(){ console.log("文件流式读取成功!") }) 2.管道方式: var fs=requ
MFC中文件对话框类CFileDialog详解及文件过滤器说明
当前位置?:?首页???文章分类?:? 开发 ??? MFC中文件对话框类CFileDialog详解及文件过滤器说明 上一篇 利用OpenCV从摄像头获得图像的坐标原点是在左下角 下一篇 Word中为图表生成目录 域名迁移公告 2017年12月20日起,本博客迁移到新域名madaimeng.com,旧域名masikkk.com不再更新内容,但将永久保持可访问! 阅读 大专栏 MFC中文件对话框类CFileDialog详解及文件过滤器说明busuanzi_value_page_pv"> 评
Oracle数据库中调用Java类开发存储过程、函数的方法
Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日 浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL,除此之外,还可以用时下最流行的编程语言Java来做开发.随着对oracle的了解越来越多,越来越禁不住oracle的诱惑,oracle技术真的是一门很有趣的学问.之前,我在博客中总结了挺多有关SQL.PL/SQL的,但是对于oracle数据库中Java类的调用却没有总结,也是因为之前不太会,这会儿总
Java项目中每一个类都可以有一个main方法
Java项目中每一个类都可以有一个main方法,但只有一个main方法会被执行,其他main方法可以对类进行单元测试. public class StaticTest { public static void main(String[] args) { Employee[] staff=new Employee[3]; staff[0]=new Employee("Tom",40000); staff[1]=new Employee("Dick",60000); s
数据抓取的一个类,包含一些常用的方法
原文:数据抓取的一个类,包含一些常用的方法 using System;using System.Configuration;using System.IO;using System.Net;using System.Text;using System.Text.RegularExpressions; namespace XXX{ /// <summary> /// Func 的摘要说明. /// </summary> public class Func
OC中分类、类扩展、Block、协议(由协议引出的代理模式)
一: 分类(Category) 1>Category的概念:就是在不改变原来类的基础上,为类增加一些方法 (1,可以为库中定义的类增加方法:2,可以给自己定义的类增加方 法)仅仅是方法哦 好处:一个类可以有多个文件,编译器会将这些文件按一个类除了,便于团队合作. 2> 代码格式: 自定义类中加分类 Person类 #import "Person.h" @interface Person : NSObject - (void)sayHi; @end @im
详解Js中文件读取机制
前言,文件读取是提高应用体验度的必须接口,因为文件操作在编程应用场景中需求很频繁. Js处理文件读取,由于处于安全方面的考虑,在2000年以前,都是以“<input type="file">”字段来实现文件上传,这样有很多的局限性,比如无法在本地上传时看到自己上传的文件(如图片),也无法读取到文件内容,审查文件流大小. HTML5中,主流浏览器引擎都支持新的FILE API,为“<input type="file">”提供一个files数组,