Gavin.han

致力于移动开发 技术改变生活

导航

ios文件处理(一)

Posted on 2012-10-28 16:19  gavin.han  阅读(1475)  评论(2编辑  收藏  举报

一.在Documents、tmp和Library中存储文件

 Documents:用于存储应用程序中经常需要读取或写入的常规文件。

 tmp:用于存储应用程序运行时生成的文件。(随着应用程序的关闭失去了利用价值)

 Library:一般存放应用程序的配置文件,比如说plist类型的文件。

 

二.读取和写入文件

   1.新建Empty Application应用程序,添加HomeViewController文件

 HomeViewController.h代码:

 #import <UIKit/UIKit.h>

@interface HomeViewController : UIViewController
{
    
}
- (NSString *) documentsPath;//负责获取Documents文件夹的位置
- (NSString *) readFromFile:(NSString *)filepath; //读取文件内容
- (void) writeToFile:(NSString *)text withFileName:(NSString *)filePath;//将内容写到指定的文件
@end

 HomeViewController.m代码: 

#import "HomeViewController.h"
@interface HomeViewController ()
@end
@implementation HomeViewController
//负责获取Documents文件夹的位置
- (NSString *) documentsPath{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsdir = [paths objectAtIndex:0];
    return documentsdir;
}

 

//读取文件内容 
- (NSString *) readFromFile:(NSString *)filepath{
    if ([[NSFileManager defaultManager] fileExistsAtPath:filepath]){
        NSArray *content = [[NSArray alloc] initWithContentsOfFile:filepath]; 
        NSString *data = [[NSString alloc] initWithFormat:@"%@", [content objectAtIndex:0]];
        [content release];
        return data;
    } else {
        return nil;
    }
}
//将内容写到指定的文件
- (void) writeToFile:(NSString *)text withFileName:(NSString *)filePath{
    NSMutableArray *array = [[NSMutableArray alloc] init];
    [array addObject:text];
    [array writeToFile:filePath atomically:YES];
    [array release];
}

 

-(NSString *)tempPath{
    return NSTemporaryDirectory();
}
- (void)viewDidLoad
{
    NSString *fileName = [[self documentsPath] stringByAppendingPathComponent:@"content.txt"];
    
    //NSString *fileName = [[self tempPath] stringByAppendingPathComponent:@"content.txt"];
    
    [self writeToFile:@"苹果的魅力!" withFileName:fileName];
    
    NSString *fileContent = [self readFromFile:fileName];
    
    NSLog(fileContent);
    
    [super viewDidLoad];
}
@end

 

效果图: