zoukankan      html  css  js  c++  java
  • < 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];
  • 相关阅读:
    快速排序就这么简单
    Shiro入门这篇就够了【Shiro的基础知识、回顾URL拦截】
    SpringDataJPA入门就这么简单
    递归就这么简单
    SpringBoot就是这么简单
    Activiti就是这么简单
    Lucene就是这么简单
    过来人告诉你,去工作前最好还是学学Git
    给女朋友讲解什么是Git
    我终于看懂了HBase,太不容易了...
  • 原文地址:https://www.cnblogs.com/aY-Wonder/p/4562994.html
Copyright © 2011-2022 走看看