iOS NSFileHandle 基本用法介紹

對(duì)NSFileHandle 的用法一直不熟練, 無(wú)意間找到的詳細(xì)介紹,留底方便使用

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

NSFileMange ? 此類主要是對(duì)文件進(jìn)行的操作以及文件信息的獲取

常用處理方法

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

+?(id)fileHandleForWritingAtPath:(NSString?*)path??打開(kāi)一個(gè)文件準(zhǔn)備寫(xiě)入

+?(id)fileHandleForUpdatingAtPath:(NSString?*)path??打開(kāi)一個(gè)文件準(zhǔn)備更新

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

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

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

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

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

-??(void)seekToFileOffset:(unsigned long long)offset;?跳到指定文件的偏移量

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

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

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

向文件追加數(shù)據(jù)

NSString *homePath??= NSHomeDirectory(?);

NSString *sourcePath?=?[homePath stringByAppendingPathConmpone:@"testfile.text"];

NSFileHandle *fielHandle?=?[NSFileHandle fileHandleForUpdatingAtPath:sourcePath];

[fileHandle seekToEndOfFile];??將節(jié)點(diǎn)跳到文件的末尾

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

NSData* stringData ?=?[str dataUsingEncoding:NSUTF8StringEncoding];

[fileHandle writeData:stringData];?追加寫(xiě)入數(shù)據(jù)

[fileHandle closeFile];

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

NSFileManager *fm?=?[NSFileManager defaultManager];

NSString *content?=?@"abcdef";

[fm createFileAtPath:path contents:[content dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];

NSFileHandle *fileHandle?=?[NSFileHandle fileHandleForReadingAtPath:path];

NSUInteger length =?[fileHandle availabelData] length];?獲取數(shù)據(jù)長(zhǎng)度

[fileHandle seekToFileOffset;length/2];?偏移量文件的一半

NSData *data?=?[fileHandle readDataToEndOfFile];

[fileHandle closeFile];

復(fù)制文件

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

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

NSFileManager?*fileManager?=?[NSFileManager defaultManager];

NSString *homePath?= NSHomeDirectory(?);

NSString *sourcePath?=?[homePath stringByAppendingPathComponent:@"testfile.txt"];??源文件路徑

NSString *outPath?=?[homePath stringByAppendingPathComponent:@"outfile.txt"];?輸出文件路徑

BOOL sucess ?=?[fileManager createFileAtPath:outPath contents:nil attributes:nil];

if (!success)

{

return N0;

}

infile =?[NSFileHandle fileHandleForReadingAtPath:sourcePath];?創(chuàng)建讀取源路徑文件

if (infile?== nil)

{

return NO;

}

outfile =?[NSFileHandle fileHandleForReadingAtPath:outPath];?創(chuàng)建病打開(kāi)要輸出的文件

if (outfile?== nil)

{

return NO;

}

[outfile truncateFileAtOffset:0];?將輸出文件的長(zhǎng)度設(shè)為0

buffer?=?[infile readDataToEndOfFile];??讀取數(shù)據(jù)

[outfile writeData:buffer];??寫(xiě)入輸入

[infile closeFile];????????關(guān)閉寫(xiě)入、輸入文件

[outfile closeFile];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、iOS中的沙盒機(jī)制 iOS應(yīng)用程序只能對(duì)自己創(chuàng)建的文件系統(tǒng)讀取文件,這個(gè)獨(dú)立、封閉、安全的空間,叫做沙盒。它一...
    tzhtodd閱讀 1,338評(píng)論 0 2
  • iOS開(kāi)發(fā)-文件管理(一) 一、iOS中的沙盒機(jī)制 iOS應(yīng)用程序只能對(duì)自己創(chuàng)建的文件系統(tǒng)讀取文件,這個(gè)獨(dú)立、封閉...
    MacShare閱讀 1,857評(píng)論 0 6
  • 一、iOS中的沙盒機(jī)制 iOS應(yīng)用程序只能對(duì)自己創(chuàng)建的文件系統(tǒng)讀取文件,這個(gè)獨(dú)立、封閉、安全的空間,叫做沙盒。它一...
    1d5cb7cff98d閱讀 1,869評(píng)論 0 0
  • 27、ViewController的didReceiveMemoryWarning是在什么時(shí)候調(diào)用的?默認(rèn)的操作是...
    煙雨平生花飛舞閱讀 689評(píng)論 0 1
  • 心血來(lái)潮,想到山區(qū)里的村鎮(zhèn)看一看。天天在城里轉(zhuǎn)來(lái)轉(zhuǎn)去,有些膩。 開(kāi)車出城,沿一條山路往前開(kāi),沒(méi)想好去哪里,走...
    曹煥甫閱讀 328評(píng)論 3 1

友情鏈接更多精彩內(nèi)容