zoukankan      html  css  js  c++  java
  • 读取和写入 文件 (NSFIleManger 与 NSFileHandle)

    读取和写入 文件

    //传递文件路径方法

    -(id)initPath:(NSString *)srcPath targetPath:(NSString *)targetPath

    {

        self = [super init];

        if (self != nil) {

            _srcPath = [srcPath copy];

            _targetPath = [targetPath copy];

        }

     

        return self;

    }

     

    //开始读文件

    -(void)startRead

    {

        

        NSFileManager *fileManager = [NSFileManager defaultManager];

        //创建文件

        BOOL success = [fileManager createFileAtPath:_srcPath contents:nil attributes:NULL];

        if (success) {

            NSLog(@"文件创建成功!!!");

        }

        //读取文件

        NSFileHandle  *inFilehandle = [NSFileHandle fileHandleForReadingAtPath:_srcPath];

        

        //写入目标文件

        NSFileHandle  *outFileHandle = [NSFileHandle fileHandleForWritingAtPath:_targetPath];

        

        //利用文件的属性获取文件的大小,现获取文件的属性,然后通过关键 键 获取文件的大小,在转化为基本数据类型

        NSDictionary *dic = [fileManager attributesOfItemAtPath:_srcPath error:nil];

        

        NSNumber *fileNum = [dic objectForKey:NSFileSize];

        

        self.fileSize = [fileNum longLongValue];

        

        BOOL isEnd = YES;

        NSAutoreleasePool *pool = nil;

        int n = 0;

        while (isEnd) {

            if (n % 10 ==0) {

                [pool release];

                pool = [[NSAutoreleasePool alloc] init];

                

            }

            NSInteger subSize = self.fileSize - _alredyReadFileSize;

            NSData *data;

            if (subSize < 5000) {

                isEnd = NO;

                data = [inFilehandle readDataToEndOfFile];

            }else{

                data = [inFilehandle readDataOfLength:5000];

                self.alredyReadFileSize += 5000;

                [inFilehandle seekToFileOffset:_alredyReadFileSize];

     

            }

            [outFileHandle writeData:data];

            n++;

        }

        [outFileHandle closeFile];

        NSLog(@"复制文件成功");

        

     

    }

  • 相关阅读:
    Spark IMF传奇行动第19课:spark排序总结
    Spark IMF传奇行动第18课:RDD持久化、广播、累加器总结
    Spark IMF传奇行动第17课Transformations实战总结
    Spark IMF传奇行动第16课RDD实战总结
    Spark3000门徒第15课RDD创建内幕彻底解密总结
    Spark3000门徒第14课spark RDD解密总结
    Spark3000门徒第13课Spark内核架构解密总结
    Spark3000门徒第12课Spark HA实战总结
    Spark3000门徒第11课彻底解密WordCount运行原理总结
    Spark3000门徒第10课Java开发Spark实战总结
  • 原文地址:https://www.cnblogs.com/meixian/p/5370924.html
Copyright © 2011-2022 走看看