iOS NSFileHandle 基本用法介紹

對NSFileHandle 的用法一直不熟練, 無意間找到的詳細介紹,留底方便使用

NSFileHandle ?此類主要是對文件內容進行讀取和寫入操作

NSFileMange ? 此類主要是對文件進行的操作以及文件信息的獲取

常用處理方法

+?(id)fileHandleForReadingAtPath:(NSString *)path??打開一個文件準備讀取

+?(id)fileHandleForWritingAtPath:(NSString?*)path??打開一個文件準備寫入

+?(id)fileHandleForUpdatingAtPath:(NSString?*)path??打開一個文件準備更新

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

-??(NSData?*)readDataToEndOfFile;?從當前的節(jié)點讀取到文件的末尾

-??(NSData?*)readDataOfLength:(NSUInteger)length;?從當前節(jié)點開始讀取指定的長度數據

-??(void)writeData:(NSData?*)data;?寫入數據

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

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

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

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

-??(void)closeFile;??關閉文件

向文件追加數據

NSString *homePath??= NSHomeDirectory(?);

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

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

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

NSString *str?=?@"追加的數據"

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

[fileHandle writeData:stringData];?追加寫入數據

[fileHandle closeFile];

定位數據

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];?獲取數據長度

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

NSData *data?=?[fileHandle readDataToEndOfFile];

[fileHandle closeFile];

復制文件

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

NSData?*buffer;?讀取的緩沖數據

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)建病打開要輸出的文件

if (outfile?== nil)

{

return NO;

}

[outfile truncateFileAtOffset:0];?將輸出文件的長度設為0

buffer?=?[infile readDataToEndOfFile];??讀取數據

[outfile writeData:buffer];??寫入輸入

[infile closeFile];????????關閉寫入、輸入文件

[outfile closeFile];

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

相關閱讀更多精彩內容

  • 一、iOS中的沙盒機制 iOS應用程序只能對自己創(chuàng)建的文件系統讀取文件,這個獨立、封閉、安全的空間,叫做沙盒。它一...
    tzhtodd閱讀 1,349評論 0 2
  • iOS開發(fā)-文件管理(一) 一、iOS中的沙盒機制 iOS應用程序只能對自己創(chuàng)建的文件系統讀取文件,這個獨立、封閉...
    MacShare閱讀 1,875評論 0 6
  • 一、iOS中的沙盒機制 iOS應用程序只能對自己創(chuàng)建的文件系統讀取文件,這個獨立、封閉、安全的空間,叫做沙盒。它一...
    1d5cb7cff98d閱讀 1,873評論 0 0
  • 27、ViewController的didReceiveMemoryWarning是在什么時候調用的?默認的操作是...
    煙雨平生花飛舞閱讀 695評論 0 1
  • 心血來潮,想到山區(qū)里的村鎮(zhèn)看一看。天天在城里轉來轉去,有些膩。 開車出城,沿一條山路往前開,沒想好去哪里,走...
    曹煥甫閱讀 335評論 3 1

友情鏈接更多精彩內容