• < Objective-C >文件操作-NSFileHandle


    NSFileHandle主要对已经存在的文件进行修改操作

    NSFileHandle常用方法
    +(NSFileHandle *)fileHandleForReadingAtPath:path 打开一个文件用于读入
    +(NSFileHandle *)fileHandleForWritingAtPath:path 打开一个文件用于写入
    +(NSFileHandle *)fileHandleForUpdatingAtPath:path 打开一个文件用于读写

    -(NSData *)readDataToEndOfFile  读取其余数据直到文件末尾
    -(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 = @"Hello World!";
            NSString *inFilePath = @"inFile.txt";
            
            [fm createFileAtPath:outFilePath contents:[contentStr dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
            [fm createFileAtPath:inFilePath contents:nil attributes:nil];
            NSFileHandle *outHandle = [NSFileHandle fileHandleForReadingAtPath:outFilePath];
            NSFileHandle *inHandle = [NSFileHandle fileHandleForWritingAtPath:inFilePath];
            
            if(outHandle == nil || inHandle == nil) {
                NSLog(@"文件并不存在!");
            } else {
                NSData *data = [outHandle readDataToEndOfFile];
                
                [inHandle truncateFileAtOffset:0];  //清空文件内容
                [inHandle writeData:data];
                NSLog(@"写入完成!");
                
                [outHandle closeFile];
                [inHandle closeFile];
            }

    修改文件代码

            //修改文件
            NSFileHandle *updateHandle = [NSFileHandle fileHandleForUpdatingAtPath:inFilePath];
            NSString *str = @"追加内容";
            
            [updateHandle seekToEndOfFile];
            [updateHandle writeData:[str dataUsingEncoding:NSUTF8StringEncoding]];
            
            [updateHandle closeFile];
  • 相关阅读:
    c#pda(wince)摄像头拍照程序
    单点登录在ASP.NET上的简单实现(图)
    写文件 指定固定开始位置
    关于"System.Web.HttpException: 超过了最大请求长度。"错误的解决
    配置本地YUM:
    开启mysql的审计功能
    用GRE通道连通机房之间的私网
    让nginx支持PATH_INFO
    Linux在本地使用yum安装软件
    sysbench的安装及使用
  • 原文地址:https://www.cnblogs.com/aY-Wonder/p/4562994.html
Copyright © 2020-2023  润新知