oc中NSFileHandle的初学-文件读取
来源:互联网 发布:seo教程ppt 编辑:程序博客网 时间:2024/06/09 21:31
1、NSFileHandle是oc中用来操作文件的类,通过此类可以读写文件,可以断点续传。2、NSFileHandle类中常用的方法//文件中的全部内容(有效数据,包括空格和汉字,其中空格在一个字节,汉字占三个字节)@property (readonly, copy) NSData *availableData;//读取文件中的全部内容- (NSData *)readDataToEndOfFile;//读取文件中指定长度(字节)的内容- (NSData *)readDataOfLength:(NSUInteger)length;//写数据到文件中- (void)writeData:(NSData *)data;//文件末尾的偏移量- (unsigned long long)seekToEndOfFile;//跳到文件中指定位置的偏移量- (void)seekToFileOffset:(unsigned long long)offset;//将文件的长度设定为指定长度的字节- (void)truncateFileAtOffset:(unsigned long long)offset;//关闭文件- (void)closeFile;//打开一个文件准备读取+ (instancetype)fileHandleForReadingAtPath:(NSString *)path;//打开一个文件准备写入+ (instancetype)fileHandleForWritingAtPath:(NSString *)path;//打开一个文件准备更新(写入、更新)+ (instancetype)fileHandleForUpdatingAtPath:(NSString *)path;3、例子//// main.m// NSFileHandleStudy//// Created by 肖国健 on 15-3-4.// Copyright (c) 2015年 Shone. All rights reserved.//#import <Foundation/Foundation.h>//读取文件中的内容void readFileContent(){ //获取根路径 /Users/xiaoguojian NSString *homePath = NSHomeDirectory(); NSLog(@"homePath=%@",homePath); NSString *path = [homePath stringByAppendingPathComponent:@"文本.txt"]; //打开一个文件准备读取 //NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:path]; //打开一个文件准备更新 NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:path]; NSData *data1 = [fileHandle readDataToEndOfFile];//读取数据 //将NSDataz转换成NSString类型 NSString *sdata1 = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding]; NSLog(@"content1=%@",sdata1); //关闭 [fileHandle closeFile];}//在文件最后添加内容void appendFileContent(){ //获取根路径 /Users/xiaoguojian NSString *homePath = NSHomeDirectory(); NSLog(@"homePath=%@",homePath); NSString *path = [homePath stringByAppendingPathComponent:@"文本.txt"]; //打开一个文件准备更新 NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:path]; NSString *append = @"这是追加的内容"; //将NSString类型的字符串转换成NSData类型的 NSData *appData = [append dataUsingEncoding:NSUTF8StringEncoding]; //写数据到文件中 [fileHandle writeData:appData]; //关闭 [fileHandle closeFile];}//在指定的位置添加内容void appendFileContentInControl(){ //获取根路径 /Users/xiaoguojian NSString *homePath = NSHomeDirectory(); NSLog(@"homePath=%@",homePath); NSString *path = [homePath stringByAppendingPathComponent:@"文本.txt"]; //打开一个文件准备更新,只有更新的情况下才能对文件进行更新操作 NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:path]; //获取文件中的字节数,空格占一个,汉字占三个 NSUInteger length = [fileHandle availableData].length; NSLog(@"length=%ld",length); //在文件指定的位置添加内容,会替换掉节点后面的内容 [fileHandle seekToFileOffset:length/2]; NSString *append = @"这是追加的内容"; //将NSString类型的字符串转换成NSData类型的 NSData *appData = [append dataUsingEncoding:NSUTF8StringEncoding]; //写数据到文件中 [fileHandle writeData:appData]; [fileHandle closeFile];}//赋值一个文件中的内容到另外一个文件中void copyFileContentToAnotherFile(){ //获取根目录 NSString *homePath = NSHomeDirectory(); NSString *resourcePath = [homePath stringByAppendingPathComponent:@"resource.txt"]; NSString *destPath = [homePath stringByAppendingPathComponent:@"dest.txt"]; //用NSFileManager创建文件 NSFileManager *fileManager = [NSFileManager defaultManager]; BOOL success = [fileManager createFileAtPath:destPath contents:nil attributes:nil]; if (success) { NSLog(@"create success!"); } else { NSLog(@"create failure!"); } NSFileHandle *resHandle = [NSFileHandle fileHandleForReadingAtPath:resourcePath]; NSFileHandle *destHandle = [NSFileHandle fileHandleForWritingAtPath:destPath]; //读取文件中的全部数据 NSData *content = [resHandle readDataToEndOfFile]; //NSData *content1 = [resHandle availableData];//这个也是读取文件中的全部数据 [destHandle writeData:content]; //关闭 [resHandle closeFile]; [destHandle closeFile];}int main(int argc, const char * argv[]) { @autoreleasepool { //获取根目录 NSString *homePath = NSHomeDirectory(); NSString *resourcePath = [homePath stringByAppendingPathComponent:@"resource.txt"]; NSString *destPath = [homePath stringByAppendingPathComponent:@"dest.txt"]; //用NSFileManager创建文件 NSFileManager *fileManager = [NSFileManager defaultManager]; BOOL success = [fileManager createFileAtPath:destPath contents:nil attributes:nil]; if (success) { NSLog(@"create success!"); } else { NSLog(@"create failure!"); } NSFileHandle *resHandle = [NSFileHandle fileHandleForReadingAtPath:resourcePath]; NSFileHandle *destHandle = [NSFileHandle fileHandleForWritingAtPath:destPath]; NSUInteger l = 6; //读取文件中的全部数据 NSData *content = [resHandle readDataOfLength:l]; //NSData *content1 = [resHandle availableData];//这个也是读取文件中的全部数据 [destHandle writeData:content]; //关闭 [resHandle closeFile]; [destHandle closeFile]; } return 0;}
0 0
- oc中NSFileHandle的初学-文件读取
- OC视频笔记-读取文件类常用方法NSFileHandle
- OC之文件管理NSFileHandle
- OC 文件部分 (NSFileManager NSData NSFileHandle 的应用)
- OC关于NSFileHandle的解析
- Swift调用OC之文件操作-NSFileHandle
- OC之i文件管理NSFileHandle
- OC : NSFileHandle (文件内容操作)
- oc NSFileHandle,文件读写管理类对对象数组的读写需遵守<NSCoding>协议
- oc 文件管理NSFileManager,文件读写NSFileHandle 文件复制
- NSFileHandle 的文件操作使用
- NSFileHandle简单的读写文件
- OC-NSString从文件中读取字符串
- OC-NSString从文件中读取字符串
- OC语言--NSFileManager& NSFileHandle
- oc NSFileManager NSFileHandle 详细
- 用NSFileHandle实现每次定量读取一个大文件
- NSFileHandle 分段读取数据 文件长度用FileManager获取
- WinRT - Disable WebView's scrollbar and allow itself scroll able within a ScrollViewer
- 十大知名厂商ERP解决方案集锦
- Cocos2dx CCSprite CCSpriteFrame CCTexture2D CCAnimation学习总结
- 转载--淘宝2012笔试题
- object 与xml的转换读取
- oc中NSFileHandle的初学-文件读取
- 常见控件(五)
- 地理坐标系、大地坐标系与地图投影与重投影详解
- yum的配置以及 yum.conf 配置文件的说明
- contains a file system with errors, check forced解决方法
- Nokia xl 4G 主内存卡切换
- 第二十四周项目4-猴子选大王(约瑟夫问题)
- 递归算法经典实例
- Nginx+jwPlay搭建流媒体服务器,记忆播放