Objective-C:随机的读取文件中的内容

简介:

 可以通过改变当前文件的偏移量来实现文件的读取

-offsetInFile获取文件当前的位移量
-seekToFileOffset:(NSUInteger)length设置文件当前的位移量
-readDataOfLength:(NSUInteger)length随机读取文件内容的字节数
-seekToEndOfFile将文件跳到结尾
复制代码
 1 //
 2 //  main.m
 3 //  04-NSFileHandle随机读取
 4 //
 5 //  Created by ma c on 15/8/24.
 6 //  Copyright (c) 2015年. All rights reserved.
 7 //
 8 
 9 #import <Foundation/Foundation.h>
10 
11 int main(int argc, const char * argv[])
12 {
13     @autoreleasepool
14     {
15         //创建文件
16         NSString *str = @"this is a test\nhello world\nHow are you?";
17         NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
18         
19         NSFileManager *fm = [NSFileManager defaultManager];
20         
21         if(![fm createFileAtPath:@"1.txt" contents:data attributes:nil])
22         {
23             NSLog(@"创建文件失败");
24             return -1;
25         }
26         
27         //随机读取文件
28         NSFileHandle *in = [NSFileHandle fileHandleForReadingAtPath:@"1.txt"];
29         if(in)
30         {
31             //读取部分内容
32             NSData *content = [in readDataOfLength:5];
33             NSLog(@"%@",[[NSString alloc]initWithData:content encoding:NSUTF8StringEncoding]);
34             
35             //查看当前文件偏移量
36             NSUInteger offset = [in offsetInFile];
37             NSLog(@"offset:%lu",offset);
38             
39             //设置文件偏移
40             [in seekToFileOffset:10];
41             
42             //再读10个字节
43             content = [in readDataOfLength:10];
44             NSLog(@"%@",[[NSString alloc]initWithData:content encoding:NSUTF8StringEncoding]);
45             
46             //直接跳到文件尾
47             [in seekToEndOfFile];
48             
49             //截取文件或者扩展文件(超出了文件长度)
50             //[in truncateFileAtOffset:10];
51         }
52         [in closeFile];
53     }
54     return 0;
55 }
复制代码

 

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


本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4755923.html,如需转载请自行联系原作者
目录
相关文章
|
iOS开发
精通Objective-C系列 - 1) 文件读取
#import int main (int argc, const char * argv[]) { FILE *wordFile = fopen ("/tmp/words.txt", "r"); char word[100]; while (...
783 0
|
iOS开发 编译器
Objective-C初步研究 - 实现文件(Implementation File)
1. 实现文件以.m为后缀名       #import “myClass.h” 导入头文件   @implementation myClass 告诉编译器实现哪个类   @synthesize myLabel; 为实例变量产生getters和setters方法   类方法实现 +(NS...
755 0
|
Java C# iOS开发
Objective-C初步研究 - 接口文件(interface file)
1. Exploring the Objective-C File Structure     建立一个Objective-C的类会新建两个文件, 一个接口文件(头文件)(interface file), 后缀为.
772 0
|
iOS开发
objective-C 的代码文件组织
上一篇中,所有代码都是放在同一个文件main.h中的,这显然不是一个好的方式,代码多了以后,看着就头大。可以将其进行拆分: 1、将所有枚举、结构的定义单独放在一个文件ShapeDef.h中 //定义“几何形状类型”枚举 typedef enum { kCircle, kRecta...
805 0