zoukankan      html  css  js  c++  java
  • Object-C-NSFileHandle

    NSFileHandle 类中得到方法可以很方便的对文件数据进行读写、追加,以及偏移量的操作。

    NSFileHandle 基本步骤:

    1、打开文件,获取一个NSFileHandle 对象

    2、对打开NSFileHandle的文件对象进行I/O操作

    3、关闭文件对象

    +(NSFileHandle *)fileHandleForReadingAtPath:path 打开一个文件用于读入

    +(NSFileHandle *)fileHandleForWritingAtPath:path打开一个文件用于写入

    +(NSFileHandle *)fileHandleForUpdatingAtPath:path 打开一个文件用于读写

    -(NSData *)readDataToEndOfFile读取其余的数据直到文件的末尾(最多UINT_MAX字节)

    -(NSData *)readDataOfLength:(NSUInteger)bytes从文件中读取指定字节的内容

    -(void)writeData:data 将data写入文件

    -(unsigned long long)offsetInFile 获取当前偏移量

    -(void)seekToFileOffset:offset 设置偏移量

    -(unsigned long long)seekToEndOfFile 将偏移量定位到文件的末尾

    -(void)truncateFileAtOffset:offset将文件的长度设置为offset字节

    -(void)closeFile关闭文件

    NSFileManager *fm=[NSFileManager defaultManager];
        NSString *outFilePath = @"outfile.txt";
        NSString *contentStr =@"这是使用NSFileManager创建的一个文件";
        if([fm createFileAtPath:outFilePath contents:[contentStr dataUsingEncoding:NSUTF8StringEncoding] attributes:nil])
        {
            NSLog(@"create success");
        }else{
            NSLog(@"create Fail");
        }
        NSString *infilePath=@"inFile.txt";
        if([fm createFileAtPath:infilePath contents:nil attributes:nil]){
            NSLog(@"create success!");
        }
        
        NSFileHandle *outHandle =[NSFileHandle fileHandleForReadingAtPath:outFilePath];
        NSFileHandle *inHandle=[NSFileHandle fileHandleForReadingAtPath:infilePath];
        if(outHandle==nil||inHandle==nil)
        {
            NSLog(@"请确认文件是否存在!");
        }else{
            NSData *data=[outHandle readDataToEndOfFile];
            //clear
            [inHandle truncateFileAtOffset:0];
            [inHandle writeData:data];
            [outHandle closeFile];
            [inHandle closeFile];
        }
        //文件追加内容
        NSString *infilePath=@"inFile.txt";
        NSFileHandle *updateHandle =[NSFileHandle fileHandleForUpdatingAtPath:infilePath];
        NSString *str=@"追加内容";
        //偏移量 刚开始的时候在开头
        [updateHandle seekToEndOfFile];
        [updateHandle writeData:[str dataUsingEncoding:NSUTF8StringEncoding]];
        [updateHandle closeFile];

  • 相关阅读:
    VS2017常用快捷键
    浅谈JS之setTimeout与setInterval
    你真的了解foreach吗?
    IEnumerable和IEnumerator详解
    Cesium坐标系及坐标转换详解
    NPM常用指令
    ASP.NET Web API 2系列(三):查看WebAPI接口的详细说明及测试接口
    【nginx】安装nginx
    【redis】本地连接服务器的redis教程
    Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法
  • 原文地址:https://www.cnblogs.com/Opaser/p/4563736.html
Copyright © 2011-2022 走看看