NSFileHandle 的文件操作使用

来源:互联网 发布:java snmp开发 编辑:程序博客网 时间:2024/04/24 00:02

        /*

         * 文件追加数据

         */

        

        // 获取当前用户 路径 /Users/xxh

       NSString *homePath = NSHomeDirectory();

       NSLog(@"homePath : %@", homePath);

        

       // 文件路径

       NSString *filePath = [homePath stringByAppendingPathComponent:@"Desktop/appendData.text"];

       NSLog(@"filePath : %@", filePath);

        

        // 创建文件操作对象

       NSFileHandle *fileHanddle = [NSFileHandlefileHandleForUpdatingAtPath:filePath];

        

        // 移动到文件未尾

        [fileHanddleseekToEndOfFile];

        //移动到指定的位置 此操作会覆盖指定偏移量之后的数据

        //[fileHanddle seekToFileOffset:10];

        

       // 追加的数据

       NSString *str = @"追加的数据";

        // 数据编码成 NSData

        NSData *data = [strdataUsingEncoding:NSUTF8StringEncoding];

        // 文件中追加数据

        [fileHanddlewriteData:data];

        

        // 关闭文件操作

        [fileHanddlecloseFile];

        

        

       /*

         * 文件定位数据

         */

        // 获取当前用户 路径 /Users/xxh

       NSString *homePath = NSHomeDirectory();

       NSLog(@"homePath : %@", homePath);

        

       // 文件路径

       NSString *filePath = [homePath stringByAppendingPathComponent:@"Desktop/appendData.text"];

        

        // 创建文件操作对象

       NSFileHandle *fileHanddle = [NSFileHandle fileHandleForReadingAtPath:filePath];

        

        // 获取可用数据长度

       NSInteger length = [fileHanddle availableData].length;

        

        //设置文件位置的偏移量 文件位置一半的位置

        [fileHanddleseekToFileOffset:length/2];

        

        //从一半开始 将数据读到文件最后

       NSData *data = [fileHanddle readDataToEndOfFile];

        

        // 转换成字符串

       NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

       NSLog(@"%@", str);

        

        // 关闭文件操作对象

        [fileHanddlecloseFile];

        

       /*

         * 复制文件

         */

        // 获取当前用户 路径 /Users/xxh

       NSString *homePath = NSHomeDirectory();

       NSLog(@"homePath : %@", homePath);

       // 文件路径

       NSString *filePath = [homePath stringByAppendingPathComponent:@"Desktop/appendData.text"];

       NSString *tagetPath = [homePath stringByAppendingPathComponent:@"Desktop/copyData.text"];

        

        // 创建文件操作对象

       NSFileManager *fileManager = [NSFileManagerdefaultManager];

        // 创建目标文件

       BOOL success = [fileManager createFileAtPath:tagetPath contents:nilattributes:nil];

       if (success) {

            NSLog(@"create success");

        }

        

       // 写数据

       NSFileHandle *outFileHandle = [NSFileHandlefileHandleForWritingAtPath:tagetPath];

        // 文件操作对象

       NSFileHandle *inFileHandle = [NSFileHandlefileHandleForReadingAtPath:filePath];

        

       //

        // 读数据 [inFileHandle availableData];

       NSData *data = [inFileHandle readDataToEndOfFile];

       // 写数据

        [outFileHandlewriteData:data];

        

        // 关闭文件操作对象

        [outFileHandlecloseFile];

        [inFileHandlecloseFile];

原创粉丝点击