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];

  • 相关阅读:
    软件测试作业随笔之二:Homework 2
    软件项目管理作业随笔之一:记我完成的一个项目
    C#博客随笔之十:Problem Statement+System Glossary+System Supplementary Specification FOR每美欲下
    C#博客随笔之九:EF框架的使用
    C#博客随笔之八:EntityFramework初识
    C#博客随笔之七:反射初体验
    C#博客随笔之六:数据绑定
    node.js 框架基本功能
    为什么不用第三方缓存
    微服务基础设施实现方案 -- node.js
  • 原文地址:https://www.cnblogs.com/Opaser/p/4563736.html
Copyright © 2011-2022 走看看