NSFileHandle文件操作的总结与整理
来源:互联网 发布:科比美如画知乎 编辑:程序博客网 时间:2024/04/25 19:57
原文地址 http://blog.csdn.net/swingpyzf/article/details/16325923
Objective-C使用NSFileHandle类对文件进行基本操作,IOS文件操作
NSFileHandle类中得方法可以对文件进行基本的读写,偏移量的操作。
NSFileHandle基本步骤:
1、打开文件,获取一个NSFileHandle对象。
2、对打开NSFileHandle的文件对象行I/O操作
3、关闭文件对象
NSFileHandle常用方法:+(NSFileHandle*)fileHandleForReadingAtPath:path 打开一个文件用于读入+(NSFileHandle*)fileHandleForWritingAtPath:path 打开一个文件用于写入+(NSFileHandle*)fileHandleForUpdatingAtPath:path 打开一个文件用于读写-(NSData*)availableData 从设备或者通道返回可用数据-(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 关闭文件方法fileHandleForWritingAtPath和fileHandleForUpdatingAtPath所指定的文件必须是已经存在的,否则返回nil,另外对于这两个方法中文件的偏移量都是为文件的开始。方法readDataToEndOfFile每次从文件中读取最多UNIT_MAX字节的数据,这个量定义在<limits.h>中。在UNIX系统下编程打开文件进行写入并不会截断文件,需要自己完成截断
1、实例程序,通过程序对文件进行一些基本操作:
#import <Foundation/Foundation.h> int main(int argc, const charchar * argv[]) { @autoreleasepool { NSFileHandle *inFile,*outFile; NSData *buffer; NSString *fileContent = @"这些是文件内容,这些是文件内容,这些是文件内容,这些是文件内容,这些是文件内容"; NSFileManager *fm = [NSFileManager defaultManager]; //创建一个文件 [fm createFileAtPath:@"testFile.txt" contents:[fileContent dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]; //创建一个需要写入的文件 [fm createFileAtPath:@"outFile.txt" contents:nil attributes:nil]; //读取文件 inFile = [NSFileHandle fileHandleForReadingAtPath:@"testFile.txt"]; //写入文件 outFile = [NSFileHandle fileHandleForWritingAtPath:@"outFile.txt"]; if(inFile!=nil){ //读取文件内容 buffer = [inFile readDataToEndOfFile]; //将文件的字节设置为0,因为他可能包含数据 [outFile truncateFileAtOffset:0]; //将读取的内容内容写到outFile.txt中 [outFile writeData:buffer]; //关闭输出 [outFile closeFile]; //验证outFile内容 NSLog(@"%@",[NSString stringWithContentsOfFile:@"outFile.txt" encoding:NSUTF8StringEncoding error:NULL]); //创建一个新的文件用来循环写入 [fm createFileAtPath:@"outFile2.txt" contents:nil attributes:nil]; //打开一个新的输出 outFile = [NSFileHandle fileHandleForWritingAtPath:@"outFile2.txt"]; //设置一个循环写入10条数据,每条数据都再后面添加上而不是覆盖 for (int i = 0; i<10; i++) { //将偏移量设置为文件的末尾 [outFile seekToEndOfFile]; //写入数据 [outFile writeData:buffer]; } //验证内容 NSLog(@"outFile2:%@",[NSString stringWithContentsOfFile:@"outFile2.txt" encoding:NSUTF8StringEncoding error:NULL]); //关闭所有 [outFile closeFile]; [inFile closeFile]; } } return 0; }
1 0
- NSFileHandle文件操作的总结与整理
- NSFileHandle 的文件操作使用
- 基本文件操作:NSFileHandle的用法
- NSFileManager和NSFileHandle文件的所有操作
- 基本文件操作:NSFileHandle的用法
- 基本文件操作:NSFileHandle的用法
- 基本文件操作:NSFileHandle的用法
- NSFileHandle操作文件内容
- NSFileManager和NSFileHandle文件操作
- NSFileHandle和NSFileManager-文件操作
- 文件的基本操作(NSFileHandle)和文件追加例子
- 文件操作-文件操作柄,NSFileHandle
- 文件操作-文件操作柄,NSFileHandle
- 文件操作-文件操作柄,NSFileHandle
- NSFileHandle简单的读写文件
- Swift调用OC之文件操作-NSFileHandle
- iOS文件操作NSFileManager和NSFileHandle
- NSFileHandle对文件进行读写操作
- 关于Spring3 + Mybatis3整合时,多数据源动态切换的问题
- 还是string和char
- 华为机试——查找子字符串个数
- web版pdf在线阅读器
- osg示例程序解析3---osganimationmakepath
- NSFileHandle文件操作的总结与整理
- Maven3.0.5安装,以及MyEclipse配置Maven3.0.5插件
- Activity快速转换为Diglog
- C++ std::pair 与 std::make_pair
- 静态分配和动态分配内存的区别
- iOS NSUserDefaults使用详细解释
- PHP关于时间获取
- 如何删除myeclipse自带的maven插件
- 华为机试——将一句英文中的单词排序