Iphone文件讀寫操作

iPhone開發-創建、讀取、寫入文件

想來相去應該做一個備忘錄,開始想用文檔,但是最近系統更換頻繁macoswindows文件格式不好定義,攜帶還不方便,於是想起了這個東東,真是人類的服氣啊...


今天的東西是如何在iPhone OS下創建、刪除、讀取、寫入文件 


創建與刪除:

//創建文件管理器

NSFileManager *fileManager = [NSFileManager defaultManager];

//獲取路徑

//參數NSDocumentDirectory要獲取那種路徑

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];//去處需要的路徑


//更改到待操作的目錄下

[fileManager changeCurrentDirectoryPath:[documentsDirectory stringByExpandingTildeInPath]];


//創建文件fileName文件名稱,contents文件的內容,如果開始沒有內容可以設置爲nilattributes文件的屬性,初始爲nil

[fileManager createFileAtPath:@"fileName" contents:nil attributes:nil];


//刪除待刪除的文件

[fileManager removeItemAtPath:@"createdNewFile" error:nil];


寫入數據:

//獲取文件路徑

NSString *path = [documentsDirectory stringByAppendingPathComponent:@"fileName"];


//待寫入的數據

NSString *temp = @"Hello friend";

int data0 = 100000;

float data1 = 23.45f;


//創建數據緩衝

NSMutableData *writer = [[NSMutableData allocinit];


//將字符串添加到緩衝中

[writer appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]];


//將其他數據添加到緩衝中

[writer appendBytes:&data0 length:sizeof(data0)];

[writer appendBytes:&data1 length:sizeof(data1)];



//將緩衝的數據寫入到文件中

[writer writeToFile:path atomically:YES];

[writer release];



讀取數據:

int gData0;

float gData1;

NSString *gData2;


NSData *reader = [NSData dataWithContentsOfFile:path];

gData2 = [[NSString alloc] initWithData:[reader subdataWithRange:NSMakeRange(0, [temp length])]

  encoding:NSUTF8StringEncoding];

[reader getBytes:&gData0 range:NSMakeRange([temp length], sizeof(gData0))];

[reader getBytes:&gData2 range:NSMakeRange([temp length] + sizeof(gData0), sizeof(gData1))];


NSLog(@"gData0:%@  gData1:%i gData2:%f", gData0, gData1, gData2);



讀取工程中的文件:

讀取數據時,要看待讀取的文件原有的文件格式,是字節碼還是文本,我經常需要重文件中讀取字節碼,所以我寫的是讀取字節文件的方式。

//用於存放數據的變量,因爲是字節,所以是UInt8

UInt8 b = 0;


//獲取文件路徑

NSString *path = [[NSBundle mainBundle] pathForResource:@"fileName" ofType:@""];


//獲取數據 

NSData *reader = [NSData dataWithContentsOfFile:path];


//獲取字節的個數

int length = [reader length];

NSLog(@"------->bytesLength:%d", length);

for(int i = 0; i < length; i++)

{

//讀取數據

[reader getBytes:&b range:NSMakeRange(i, sizeof(b))];

NSLog(@"-------->data%d:%d", i, b);    

 

}

iphone實現文件的讀寫操作

iphone可以很容易的實現文件的讀寫,但是如果你沒有使用蘋果公司99美元開發者sdk的話,你利用破解打出來的api包,安裝到手機上不能把文件寫入手機.下面是我實現讀寫的代碼:

#import "ManagerFile.h"

@implementation ManagerFile

-(void)writeFile:(NSString *)file 

    //創建文件管理器 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    //獲取路徑 
    //參數NSDocumentDirectory要獲取那種路徑 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0];//去處需要的路徑   
    //更改到待操作的目錄下 
    [fileManager changeCurrentDirectoryPath:[documentsDirectory stringByExpandingTildeInPath]]; 
    //創建文件fileName文件名稱,contents文件的內容,如果開始沒有內容可以設置爲nil,attributes文件的屬性,初始爲nil 
    //獲取文件路徑 
    [fileManager removeItemAtPath:@"username" error:nil]; 
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"username"]; 
    //創建數據緩衝 
    NSMutableData *writer = [[NSMutableData alloc] init]; 
    //將字符串添加到緩衝中 
    [writer appendData:[file dataUsingEncoding:NSUTF8StringEncoding]]; 
    //將其他數據添加到緩衝中 
    //將緩衝的數據寫入到文件中 
    [writer writeToFile:path atomically:YES]; 
    [writer release]; 

-(NSString *)readFile 

    //創建文件管理器 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    //獲取路徑 
    //參數NSDocumentDirectory要獲取那種路徑 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0];//去處需要的路徑   
    //更改到待操作的目錄下 
    [fileManager changeCurrentDirectoryPath:[documentsDirectory stringByExpandingTildeInPath]]; 
    //獲取文件路徑 
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"username"]; 
    NSData *reader = [NSData dataWithContentsOfFile:path]; 
    return [[NSString alloc] initWithData:reader 
                                 encoding:NSUTF8StringEncoding]; 

@end

 

本文轉至:http://blog.sina.com.cn/s/blog_7e6e60490100vg4f.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章