第一、nsfilehandle
nsfilemanager类主要对文件的操作(删除、修改、移动、复制等)
nsfilehandle类主要对文件的内容进行读取和写入
第二、nsfilehandle类处理文件的步骤
创建一个nsfilehandle对象
对打开的文件进行i/0操作
关闭文件
可以使用nsfilehandle进行断点续传
第三、实现查找功能的代码:
nsstring *homepath=nshomedirectory();
nsstring *filepath=[homepath stringbyappendingpathcomponent:@desktop/hello.rtf];
nsfilehandle *filehandle=[nsfilehandle filehandleforreadingatpath:filepath];
nsuinteger length=[filehandle availabledata].length;
[filehandle seektofileoffset:length/2];
nsdata *data=[filehandle readdatatoendoffile];
nsstring *str=[[nsstring alloc] initwithdata:data encoding:nsutf8stringencoding];
nslog(@);
第四、实现追加文件代码:
nsstring *homepath=nshomedirectory();
nsstring *filepath=[homepath stringbyappendingpathcomponent:@desktop/hello.rtf];
nsfilehandle *filehandle=[nsfilehandle filehandleforupdatingatpath:filepath];
//[filehandle seektoendoffile];
[filehandle seektofileoffset:10];
nsstring ;
nsdata *data=[str datausingencoding:nsutf8stringencoding];
[filehandle writedata:data];
[filehandle closefile];
// insert code here...
nslog(@hello, world!);
第五、实现复制文件的代码:
nsstring *homepath=nshomedirectory();
nsstring *filepath=[homepath stringbyappendingpathcomponent:@desktop/hello.rtf];
nsstring *objpath=[homepath stringbyappendingpathcomponent:@desktop/copy.rtf];
nsfilemanager *filemanager=[nsfilemanager defaultmanager];
bool success=[filemanager createfileatpath:objpath contents:nil attributes:nil];
nsfilehandle *writefile=[nsfilehandle filehandleforreadingatpath:filepath];
nsfilehandle *objfile=[nsfilehandle filehandleforwritingatpath:objpath];
[objfile readdatatoendoffile];
nsdata *data=[writefile readdatatoendoffile];
[objfile writedata:data];
[writefile closefile];
[objfile closefile];
更多信息请查看IT技术专栏