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 }

 

 
posted @ 2015-08-24 20:54  XYQ全哥  阅读(1986)  评论(0编辑  收藏  举报