20150619_OC之NSData及文件操作NSFileHandle

来源:互联网 发布:网络发票号怎么查询 编辑:程序博客网 时间:2024/05/24 16:16

OC中NSData数据,将对象边为字节码

////  main.m//  IOS150619_ObjectiveC_NSData////  Created by qianfeng on 15/6/19.//  Copyright (c) 2015年 Peng Junlong. All rights reserved.//#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {        NSString *string = @"I love China";        //把字符串对象转换成NSData对象        NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];        NSLog(@"%@",data);                //把data对象中的数据写到指定文件中,文件不存在可以创建目的文件,但是目录不存在,则写失败        //- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;        BOOL ret = [data writeToFile:@"/Users/qianfeng/Desktop/test/dic3/Hello.txt" atomically:YES];//原子性,即在写过程中不被打断,要么全部写完,要么就不写        NSLog(@"ret = %d",ret);                //把文件内容读成二进制对象        NSData *data1 = [NSData dataWithContentsOfFile:@"/Users/qianfeng/Desktop/test/dic3/Hello.txt"];                //将NSData对象转换成字符串对象        NSString *string1 = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];        NSLog(@"string1 = %@",string1);                    }    return 0;}

NSFileHandle文件句柄:

//  main.m//  IOS150619_ObjectiveC_文件操作////  Created by qianfeng on 15/6/19.//  Copyright (c) 2015年 Peng Junlong. All rights reserved.//#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {    @autoreleasepool {//句柄类似与二级指针,仅仅是类似        //文件句柄        //以只读的方式创建文件句柄,打开文件        //+ (instancetype)fileHandleForReadingAtPath:(NSString *)path;        //NSFileHandle *fh = [NSFileHandle fileHandleForReadingAtPath:@""];                //以只写的方式创建文件句柄,打开文件        //+ (instancetype)fileHandleForWritingAtPath:(NSString *)path;        //NSFileHandle *fh1 = [NSFileHandle fileHandleForWritingAtPath:@""];                //以可读可写的方式创建文件句柄        //+ (instancetype)fileHandleForUpdatingAtPath:(NSString *)path;        NSFileHandle *fh2 = [NSFileHandle fileHandleForUpdatingAtPath:@"/Users/qianfeng/Desktop/test/4.txt"];        //把文件指针移动到文件末尾,从文件指针的位置开始写        [fh2 seekToEndOfFile];        //写文件        NSData *data1 = [@"中国雄起" dataUsingEncoding:NSUTF8StringEncoding];        NSData *data2 = [@"上海牛" dataUsingEncoding:NSUTF8StringEncoding];        [fh2 writeData:data1];        [fh2 writeData:data2];        //把文件的内容同步到磁盘中        [fh2 synchronizeFile];        [fh2 closeFile];//文件句柄消失的时候,对应的文件应该关闭                //读取文件内容到末尾        NSFileHandle *fh3 = [NSFileHandle fileHandleForUpdatingAtPath:@"/Users/qianfeng/Desktop/test/4.txt"];        NSData *data3 = [fh3 readDataToEndOfFile];        NSString *string = [[NSString alloc] initWithData:data3 encoding:NSUTF8StringEncoding];        NSLog(@"string = %@",string);                //读取文件指定长度大小        //在OC中一个汉字占3个字节,如果把汉字拆了就无法转换成字符串对象                //移动文件指针到指定位置        //- (void)seekToFileOffset:(unsigned long long)offset;        [fh3 seekToFileOffset:6];        NSData *data4 = [fh3 readDataOfLength:9];                NSLog(@"data4 = %@",[[NSString alloc] initWithData:data4 encoding:NSUTF8StringEncoding]);                        //截断文件为指定大小字节内容        //- (void)truncateFileAtOffset:(unsigned long long)offset;        [fh3 truncateFileAtOffset:30];            }    return 0;}


0 0
原创粉丝点击