iphone-common-codes-ccteam源代码 CCFile.m

本文介绍了CCFile类的实现细节,包括初始化、读写、移动文件指针等方法,并提供了获取文件大小、当前位置等功能。此外,还展示了如何使用此类将文件内容读取为字符串数组。

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

//
//  CCFile.m
//  CCFC
//
//  Created by xichen on 11-12-23.
//  Copyright 2011 ccteam. All rights reserved.
//


#import "CCFile.h"
#import "CCCommon.h"


@implementation CCFile


- (id)initWithFilePath:(NSString *)filePath withOpenOptions:(NSString *)options
{
        COMMON_INIT_BEGIN
        
        FILE *file = fopen([filePath UTF8String], [options UTF8String]);
        if(file == NULL)
                return nil;
        _filePath = [filePath retain];
        _openOptions = [options retain];
        _file = file;
        
        COMMON_INIT_END
}


- (void)dealloc
{
        [_filePath release];
        [_openOptions release];
        if(_file != NULL)
                fclose(_file);
        [super dealloc];
}


- (NSString *)filePath
{
        return _filePath;
}


- (NSString *)openOptions
{
        return _openOptions;
}


- (long)getFileSize
{
        long curPos = ftell(_file);             // get the curr pos
        fseek(_file, 0, SEEK_END);
        
        long ret = ftell(_file);
        fseek(_file, curPos, SEEK_SET); // restore to the previous pos
        return ret;
}


- (long)currPos
{
        return ftell(_file);
}


- (void)moveToBegin
{
        rewind(_file);
}


- (void)moveToPos:(long)pos
{
        fseek(_file, pos, SEEK_SET);
}


- (void)moveToEnd
{
        fseek(_file, 0, SEEK_END);
}


- (int)flush
{
        return fflush(_file);
}


- (size_t)read:(void *)buf withSize:(size_t)size
{
        return fread(buf, 1, size, _file);
}


- (size_t)write:(void *)buf withSize:(size_t)size
{
        return fwrite(buf, 1, size, _file);
}


- (void)close
{
        if(_file != NULL)
        {
                fclose(_file);
                _file = NULL;
        }
}


+ (NSArray *)readFileToLines:(NSString *)filePath
{
        return [[NSString stringWithContentsOfFile:filePath
                                                                          encoding:NSUTF8StringEncoding
                                                                                 error:nil]
                         componentsSeparatedByString:@"\n"];
}




@end


googlecode链接地址(会有更新):http://code.google.com/p/iphone-common-codes-ccteam/source/browse/trunk/CCFC/files/CCFile.m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值