日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

6月19日 NSFileHandle文件类的常用方法

發(fā)布時(shí)間:2023/12/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6月19日 NSFileHandle文件类的常用方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


?

?NSFileManager類主要對(duì)文件的操作(刪除,修改,移動(dòng),復(fù)制等);

?

?NSFileHandle類主要對(duì)文件內(nèi)容進(jìn)行讀取和寫入操作

?

?NSFileHandle處理文件的步驟

?

?1.? ? ? 創(chuàng)建一個(gè)NSFileHandle對(duì)象

?

?2.? ? ? 對(duì)打開的文件進(jìn)行I/O操作

?

?3.? ? ? 關(guān)閉文件

?

?可以使用NSFileHandle做文件的斷點(diǎn)續(xù)傳

?

?

?

?(一)? 常用方法

?

?//創(chuàng)建方法

?

?+(id)fileHandleForReadingAtPath:(NSString *)path;//打開一個(gè)文件準(zhǔn)備讀取

?

?+(id)fileHandleForWritingAtPath:(NSString*)path;//打開一個(gè)文件準(zhǔn)備寫入

?

?+(id)fileHandleForUpdatingAtPath:(NSString*)path;//打開一個(gè)文件準(zhǔn)備更新(讀取,更新)

?

?

?

?-(NSData *)availableData;//從設(shè)備或通道返回可用的數(shù)據(jù)

?

?-(NSData *)readDataToEndOfFile;//從當(dāng)前的節(jié)點(diǎn)讀取到文件末尾

?

?-(NSData *)readDataOfLength:(NSUInteger)length;//從當(dāng)前節(jié)點(diǎn)開始讀取指定的長(zhǎng)度數(shù)據(jù)

?

?-(void)writeData:(NSData *)data;//寫入數(shù)據(jù)

?

?-(unsigned long long)offsetInFile://獲取當(dāng)前文件的偏移量

?

?-(unsigned long long)seekToEndOfFile;//跳到文件尾

?

?-(void)truncateFileAtOffset:(unsigned longlong)offset;//將文件的長(zhǎng)度設(shè)置為offset字節(jié)

?

?-(void)closeFile;//關(guān)閉文件

?

?

?

?(二)

?

?//追加數(shù)據(jù)

?

?NSString *homePath = NSHomeDirectory();

?

?NSString *sourcePath = [homePathstringByAppendingPathComponent:@”需要追加數(shù)據(jù)的文件路徑”];

?

?NSFileHandle *fileHandle = [NSFileHandlefileHandleForUpdatingAtPath:sourcePath];

?

?//將節(jié)點(diǎn)跳到文件末尾

?

?[fileHandle seekToEndOfFile];

?

?NSString *str = @”追加的數(shù)據(jù)”;

?

?NSData *stringData = [strdataUsingEncoding:NSUTF8StringEncoding];

?

?//追加寫入數(shù)據(jù)

?

?[fileHandle writeData:stringData];

?

?[fielHandle closeFile];

?

?

?

?//定位數(shù)據(jù)

?

?NSFileManager *fm = [NSFileManagerdefaultManager];

?

?NSString *content = @”abcdefghijklmn”;

?

?[fm createFileAtPath:path contents:[contentdataUsingEncoding:NSUTF8StringEncoding] attributes:nil];

?

?NSFileHandle *fileHandle = [NSFileHandlefileHandleForReadingAtPath:path];

?

?//獲取數(shù)據(jù)長(zhǎng)度

?

?NSUInteger length = [[fileHandleavailableData] length];

?

?//偏移量但文件的一半

?

?[fileHandle seekToFileOffset:length/2];

?

?//從一半開始將數(shù)據(jù)湊到文件最后

?

?NSData *data = [fileHandlereadDataToEndOfFile];

?

?[fileHandle closeFiel];

?

?

?

?//復(fù)制文件

?

?NSFileHandle *infile, *outfile;//輸入文件,輸出文件

?

?NSData *buffer;//讀取的緩沖數(shù)據(jù)

?

?NSFileManager *fileManager = [NSFileManagerdefaultManager];

?

?NSString *homePath = NSHomeDirectory();

?

?//源文件路徑

?

?NSString *sourcePath = [homePathstringByAppendingPathComponent:@”testfile.text”];

?

?//輸出文件路徑

?

?NSString *outPath = [homePathstringByAppendingPathComponent:@”outfile.text”];

?

?//創(chuàng)建輸出文件

?

?BOOL success = [fileManagercreateFileAtPath:outPath content:nil attributes:nil];

?

?If (!success){

?

?returnNO;

?

?}

?

?outfile = [NSFileHandlefileHandleForWritingAtPath:outPath];

?

?infile = [NSFileHandlefileHandleForReadingAtPath:sourcePath];

?

?//讀取源文件內(nèi)容

?

?NSData *data = [infile readDataToEndOfFile];

?

?//寫入內(nèi)容

?

?[outfile writeData:data];

?

?[oufile closeFile];

?

?[infile closeFile];

總結(jié)

以上是生活随笔為你收集整理的6月19日 NSFileHandle文件类的常用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。