程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> [Objective-C]OC中文件讀取類(NSFileHandle)介紹和常用使用方法

[Objective-C]OC中文件讀取類(NSFileHandle)介紹和常用使用方法

編輯:關於C語言

NSFileHandle

NSFileManager類主要對於文件的操作(刪除,修改,移動,賦值等等)

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

NSFileHandle處理文件的步驟

1:創建一個NSFileHandle對象

2:對打開的文件進行I/O操作

3:關閉文件對象操作

常用處理方法

 

+ (id)fileHandleForReadingAtPath:(NSString *)path; //打開一個文件准備讀取
+ (id)fileHandleForWritingAtPath:(NSString *)path;  //打開一個文件准備寫入
+ (id)fileHandleForUpdatingAtPath:(NSString *)path; //打開一個文件可以更新(讀取,寫入)
- (NSData *)availableData;      //返回可用的數據
- (NSData *)readDataToEndOfFile;  //從當前的節點位置讀取到文件末尾
- (NSData *)readDataOfLength:(NSUInteger)length; //從當前的節點位置開始讀取指定長度的數據
- (void)writeData:(NSData *)data;    //寫入數據
- (unsigned long long)offsetInFile;   //獲取當前文件的偏移量
- (unsigned long long)seekToEndOfFile; //跳轉到文件結尾
- (void)seekToFileOffset:(unsigned long long)offset; //跳轉到指定文件的指定的偏移量的位置
- (void)truncateFileAtOffset:(unsigned long long)offset;  //設置文件長度
- (void)synchronizeFile;  //文件同步
- (void)closeFile;   //關閉文件

 

實例代碼

1(對文件進行加入數據:):

@autoreleasepool {
        NSString *homePath=NSHomeDirectory();
        NSLog(@"%@",homePath);
        
        NSString *filePath=[homePath stringByAppendingFormat:@"/Desktop/testfile"];
        NSLog(@"%@",filePath);
        NSFileHandle *fileHandle=[NSFileHandle fileHandleForUpdatingAtPath:filePath];
        
        [fileHandle seekToEndOfFile];
        NSString *str=@"測試加入的數據為";
        NSData *data=[str dataUsingEncoding:NSUTF8StringEncoding];
        [fileHandle writeData:data];
        [fileHandle closeFile];
    }
    return 0;
\

 

 

2:對文件中的數據進行定位:

 

          NSString *homePath=NSHomeDirectory();
          NSString *filePath=[homePath stringByAppendingFormat:@"/Desktop/testfile"];
          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(@"%@",str);
 

	\
	
[特別講一下NSData類的一些方法]

	\
	
3:復制文件中的數據

	
//復制文件 NSString *homePath=NSHomeDirectory(); NSString *filePath=[homePath stringByAppendingFormat:@"/Desktop/testfile"]; //NSFileHandle *fileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath]; NSString *targetPath=[homePath stringByAppendingFormat:@"/Desktop/outfile"]; NSFileManager *fileManager=[NSFileManager defaultManager]; BOOL result=[fileManager createFileAtPath:targetPath contents:nil attributes:nil]; if(result){ NSLog(@"create success!"); } NSFileHandle *inFileHandle=[NSFileHandle fileHandleForReadingAtPath:filePath]; NSFileHandle *outFileHandle=[NSFileHandle fileHandleForWritingAtPath:targetPath]; NSData *inData=[inFileHandle availableData]; //讀出文件中所有的數據 //下面開始進行寫文件 [outFileHandle writeData:inData]; [inFileHandle closeFile]; [outFileHandle closeFile];

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved