Objective-c:NSFileHandle类,创建流对象,对文件进行写入、读取的操作

简介:
NSFileHandle类:它需要配合NSFileManager文件管理类,对文件内容进行操作,写入数据、读取数据。
使用步骤:
    1、打开文件获取NSFileHandle类的对象
    2、进行文件的I/O操作
    3、关闭文件
复制代码
 1 //
 2 //  main.m
 3 //  02-NsFileHandle
 4 //
 5 //  Created by ma c on 15/8/24.
 6 //  Copyright (c) 2015年 bjsxt. All rights reserved.
 7 //
 8 
 9 #import <Foundation/Foundation.h>
10 
11 int main(int argc, const char * argv[])
12 {
13     @autoreleasepool
14     {
15         //NSFileHandle文件
16         //1.创建文件
17         NSString *str = @"this is a test.";
18         NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
19         NSFileManager *fm = [NSFileManager defaultManager];
20         if([fm createFileAtPath:@"1.txt" contents:data attributes:nil])
21         {
22             NSLog(@"文件创建成功");
23             //2.创建NSFileHandle对象
24             NSFileHandle *infh = [NSFileHandle fileHandleForReadingAtPath:@"1.txt"];
25             if(infh)
26             {
27                 //3.读文件内容
28                 //3.1读文件的全部内容
29                 //NSData *contents = [fh readDataToEndOfFile];
30                 //3.2读文件的部分内容
31                 NSMutableData *allData = [NSMutableData data];
32                 NSData *contents;
33                 while(1)
34                 {
35                     contents = [infh readDataOfLength:4];
36                     //判断是否读到文件尾
37                     if(!contents || [contents length] <= 0)
38                     {
39                         break;
40                     }
41                     [allData appendData:contents];
42                 }
43                 NSString *strContents = [[NSString alloc]initWithData:allData encoding:NSUTF8StringEncoding];
44                 NSLog(@"%@",strContents);
45             }
46             //4.关闭文件
47             [infh closeFile];
48         }
49         else
50         {
51             NSLog(@"文件创建失败");
52         }
53         
54         //5.写文件的例子
55         [fm createFileAtPath:@"2.txt" contents:nil attributes:nil];
56         //写文件时只能写已经存在的文件,自己不主动创建文件
57         NSFileHandle *outfh = [NSFileHandle fileHandleForWritingAtPath:@"2.txt"];
58         if(outfh)
59         {
60             NSData *data = [@"hello world" dataUsingEncoding:NSUTF8StringEncoding];
61             //写文件
62             [outfh writeData:data];
63         }
64         [outfh closeFile];
65     }
66     return 0;
67 }
复制代码

 

 
程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!


本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4755876.html,如需转载请自行联系原作者
目录
相关文章
|
机器学习/深度学习 API iOS开发
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(一)
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(一)
140 0
|
存储 自然语言处理 Java
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(二)
【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词(二)
218 0
|
存储 供应链 编译器
玩转 Objective-C 的 Mock 对象
测试驱动开发(TDD)中,开发者经常使用模拟对象进行系统设计,模拟对象到底是什么呢?部分模拟对象和全部模拟对象又是什么呢?模拟对象真的让人又爱又恨吗?让我们以Objective-C测试框架OCMock来探个究竟。
179 0
|
C语言 iOS开发
Objective-C中NSArray类的解读
Objective-C中NSArray类的解读
193 0