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

  • 相关阅读:
    Configuring ISC DHCPv6 Server
    不兼容的签名实现,
    12个Flex常用功能代码
    水平和垂直翻转可视对象
    在as3中只有事件(或该事件的子级)的发送者才能侦听事件
    addChild一个.swf时,该swf的背景色失效,同时如有超出大小的范围,也会显示,造成边距
    1.随机函数,计算机运行的基石
    flex builder3如何设置默认浏览器
    字体轮廓和设备字体
    Flex Develpment中右边的框的linkWithEdit
  • 原文地址:https://www.cnblogs.com/Opaser/p/4563736.html
Copyright © 2011-2022 走看看