[iOS基础]文件读取详解

本文详细介绍了如何在应用中进行文件操作,包括创建和删除文件夹,以及如何读取和解析文本文件。通过使用Objective-C语言,读者可以学习到如何使用NSFileManager类来实现这些功能,并且通过示例代码了解文本文件内容的读取与解析方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件操作

创建文件夹:
 NSString *imageDir = [NSString stringWithFormat:@"%@/Caches/%@", NSHomeDirectory(), dirName];
 BOOL isDir = NO;
 NSFileManager *fileManager = [NSFileManager defaultManager];
 BOOL existed = [fileManager fileExistsAtPath:imageDir isDirectory:&isDir];
 if ( !(isDir == YES && existed == YES) )
 {
  [fileManager createDirectoryAtPath:imageDir withIntermediateDirectories:YES attributes:nil error:nil];
 }


删除文件夹及文件级内的文件:
 NSString *imageDir = [NSString stringWithFormat:@"%@/Caches/%@", NSHomeDirectory(), dirName];
 NSFileManager *fileManager = [NSFileManager defaultManager];
 [fileManager removeItemAtPath:imageDir error:nil];

文件读写解析

http://blog.youkuaiyun.com/diqun1314/article/details/7245501
http://3lian.com/edu/2013/10-14/101565.html

读取txt文件

 NSString *tmp;
        NSArray *lines; /*将文件转化为一行一行的*/
        lines = [[NSString    stringWithContentsOfFile:@"testFileReadLines.txt"]
                       componentsSeparatedByString:@"\n"];

         NSEnumerator *nse = [lines objectEnumerator];

         // 读取<>里的内容
         while(tmp = [nse nextObject]) {
                  NSString *stringBetweenBrackets = nil;
                  NSScanner *scanner = [NSScanner scannerWithString:tmp];
                  [scanner scanUpToString:@"<" intoString:nil];
                  [scanner scanString:@"<" intoString:nil];
                  [scanner scanUpToString:@">" intoString:&stringBetweenBrackets];
                  NSLog([stringBetweenBrackets description]);
          }

文件读取的四种方法

//第一种方法: NSFileManager实例方法读取数据
        NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES);
        NSString* thepath = [paths lastObject];
        thepath = [thepath stringByAppendingPathComponent:@"fd_list.txt"];
        NSLog(@"桌面目录:%@", thepath);
        NSFileManager* fm = [NSFileManager defaultManager];
        NSData* data = [[NSData alloc] init];
        data = [fm contentsAtPath:thepath];
        NSLog(@"%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);


        //第二种方法: NSData类方法读取数据
        data = [NSData dataWithContentsOfFile:thepath];
        NSLog(@"NSData类方法读取的内容是:%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);


        //第三种方法: NSString类方法读取内容
        NSString* content = [NSString stringWithContentsOfFile:thepath encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"NSString类方法读取的内容是:\n%@",content);


        //第四种方法: NSFileHandle实例方法读取内容
        NSFileHandle* fh = [NSFileHandle fileHandleForReadingAtPath:thepath];
        data = [fh readDataToEndOfFile];
        NSLog(@"NSFileHandle实例读取的内容是:\n%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值