Objective-cテキストファイルの読み書き


ファイルの読み書き


NSString *path = @"/Users/Allen/Desktop/test.dat";   NSString *temp = @"Allen Dang"; int i = 100; float f = 98.3333f; NSMutableData *writer = [[NSMutableData alloc] init];   [writer appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]]; [writer appendBytes:&i length:sizeof(i)]; [writer appendBytes:&f length:sizeof(f)];   [writer writeToFile:path atomically:YES]; [writer release];
 
ファイルを読む
 
NSString *contentPath = [[NSBundle mainBundle] pathForResource:@"Content"ofType:@"txt"];
    NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString *txtContent = [NSString stringWithContentsOfFile:contentPath encoding:NSUTF8StringEncoding error:nil];
 
 
ファイルを書く
 
NSString *str = @"asdasdads";
        NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
        NSData *data = [str dataUsingEncoding:enc];
        NSString *filename = @"/Users/xxx/files.txt"];
        [data writeToFile: filename atomically: NO];
int ii;
float ff;
NSString *ttemp;
 
NSData *reader = [NSData dataWithContentsOfFile:path];
ttemp = [[NSString alloc] initWithData:[reader subdataWithRange:NSMakeRange(0, [temp length])]
                                  encoding:NSUTF8StringEncoding];
[reader getBytes:&ii range:NSMakeRange([temp length], sizeof(ii))];
[reader getBytes:&ff range:NSMakeRange([temp length] + sizeof(ii), sizeof(ff))];
 
NSLog(@"string:%@  int:%i float:%f", ttemp, ii, ff);
 
[temp release];
[ttemp release];
[path release];

NSStringはUTF 8符号化の関数である


@interface NSString (OAURLEncodingAdditions) - (NSString *)URLEncodedString; - (NSString *)URLDecodedString; @end @implementation NSString (OAURLEncodingAdditions) - (NSString *)URLEncodedString{         NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, NULL, CFSTR("!*'();:@&=+$,/?%#[]"), kCFStringEncodingUTF8);    [result autorelease];    return result; } - (NSString*)URLDecodedString{    NSString *result = (NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, (CFStringRef)self, CFSTR(""), kCFStringEncodingUTF8);    [result autorelease];    return result; } @end
 
 
 
 
 

NSString NSData変換と一般的なNSStringおよびNSMutablesStringメソッド



NSString* aStr = [[NSString alloc] initWithData:aData encoding:NSASCIIStringEncoding];

NSData* aData = [aStr dataUsingEncoding: NSASCIIStringEncoding];
NSStringメソッド+(id)stringWithContentsOfFile:path encoding:encror:err新しい文字列を作成してpathで指定したファイルの内容に設定し、文字コードencを使用し、ゼロでない場合はerrのエラー+(id)stringWithContentsOfURL:url encoding:encror:err:errを返して新しい文字列を作成し、urlの内容に設定し、文字コードencを使用し、ゼロでない場合は、errのエラー+(id)stringを返して新しい空の文字列+(id)stringWithStringを作成します:nsstring新しい文字列を作成します.nsstring-(id)initWithString:nsstring割り当てられた文字列をnsstring-(id)initWithContentsOfFile:path encoding:enc error:err文字列をpathが作成したファイルの内容-(id)initWithContentsOfURL:url encoding:enc error:err文字列をurl(NSURL*)urlの内容に設定し、文字コードencを使用してゼロでない場合、エラーを返す-(id)(UNSIgned int)length返される文字列の文字数-(unichar)characterAtIndex:i返されるインデックスiのUnicode文字-(NSString*)substringFromIndex:i返されるiから末尾を知るサブ文字列-(NSString*)substringWithRange:range指定範囲に従ってサブ文字列-(NSString*)substringToIndex:iこの文字列から索iまでのサブ文字列を返します-(NSComparator*)caseInsensitiveCompare:nsstring 2つの文字列を比較します.大文字と小文字を無視-(NSComparator*)comparare:nsstring比較2文字列-(BOOL)hasPrefix:nsstringテスト文字列がnsstringで始まるかどうか-(BOOL)hasSuffix:nsstringテスト文字列がnsstrngで終わるかどうか-(BOOL)isEqualToString:nsstringテスト2文字列が等しいかどうか-(NSString*)capitalizedString各単語の頭文字を大文字で返す文字列(各単語の残りのアルファベットを小文字に変換)-(NSString*)lowercaseStringは小文字に変換された文字列を返します-(NSString*)uppercaseStringは大文字に変換された文字列を返します-(const char*)UTF 8 StringはUIF-8文字列に変換された文字列を返します-(double)doubleValueはdoubleに変換された文字列-(float)floatValueは浮動小数点値に変換された文字列を返します-(NSInteger)integerValueはNSInteger整数に変換された文字列を返します-(int)intValueは整数に変換された文字列を返しますNSMutablesStringメソッド+(id)stringWithCapacity:sizeは文字列を作成します.初期sizeを含む文字-(id)initWithCapacity:size初期容量sizeの文字列を使用して文字列を初期化-(void)setString:nsstring文字列をnsstring-(void)appendString:nsstring受信者の末尾にnsstring-(void)deleteCharactersInRange:range指定rangeの文字-(void)を追加InsertString:nsstring atIndex:iインデックスiを先頭にnsstring-(void)replaceCharactersInRange:range withString:nsstring range指定した文字-(void)replaceOccurrencesOf String:nsstring withString:nsstring 2 options:opts range:rangeオプションに従ってoptsをnsstringで置き換えます.指定したrangeのnsstring 2を使用して、すべてのnsstringを置き換えます.オプションには、NSBackwardsSearch(範囲の最後から検索)NSAnchoredSearch(nsstringが範囲に一致する必要がある最初)、NSLiteralSearch(バイト単位の比較およびNSCaceInsensitiveSearchのビット単位または組合せ)が含まれます.
*-------------------------------------------------*/NSString*string 1=@「This is a string」;    NSString *string2 = @"string";     NSRange range = [string1 rangeOfString:string2];     int location = range.location;     int leight = range.length;     NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%i,Leight:%i",location,leight]];     NSLog(@"astring:%@",astring);     [astring release]; //-substringToIndex:文字列の先頭から指定された位置まで切り取りますが、その位置の文字NSString*string 1=@「This is is a string」は含まれません.    NSString *string2 = [string1 substringToIndex:3];     NSLog(@"string2:%@",string2); //-substringFromIndex:指定された位置から開始し(指定された位置の文字を含む)、その後のすべての文字NSString*string 1=@"This is is a string";    NSString *string2 = [string1 substringFromIndex:3];     NSLog(@"string2:%@",string2); ///-substringWithRange://与えられた位置、長さに従って、任意に文字列からサブ列NSString*string 1=@「This is is a string」を切り取る.    NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];     NSLog(@"string2:%@",string2);