• Objective-c:NSFileHandle类,创建流对象,对文件进行写入、读取的操作


    NSFileHandle类:它需要配合NSFileManager文件管理类,对文件内容进行操作,写入数据、读取数据。
    使用步骤:
        1、打开文件获取NSFileHandle类的对象
        2、进行文件的I/O操作
        3、关闭文件
     1 //
     2 //  main.m
     3 //  02-NsFileHandle
     4 //
     5 //  Created by ma c on 15/8/24.
     6 //  Copyright (c) 2015年 bjsxt. All rights reserved.
     7 //
     8 
     9 #import <Foundation/Foundation.h>
    10 
    11 int main(int argc, const char * argv[])
    12 {
    13     @autoreleasepool
    14     {
    15         //NSFileHandle文件
    16         //1.创建文件
    17         NSString *str = @"this is a test.";
    18         NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    19         NSFileManager *fm = [NSFileManager defaultManager];
    20         if([fm createFileAtPath:@"1.txt" contents:data attributes:nil])
    21         {
    22             NSLog(@"文件创建成功");
    23             //2.创建NSFileHandle对象
    24             NSFileHandle *infh = [NSFileHandle fileHandleForReadingAtPath:@"1.txt"];
    25             if(infh)
    26             {
    27                 //3.读文件内容
    28                 //3.1读文件的全部内容
    29                 //NSData *contents = [fh readDataToEndOfFile];
    30                 //3.2读文件的部分内容
    31                 NSMutableData *allData = [NSMutableData data];
    32                 NSData *contents;
    33                 while(1)
    34                 {
    35                     contents = [infh readDataOfLength:4];
    36                     //判断是否读到文件尾
    37                     if(!contents || [contents length] <= 0)
    38                     {
    39                         break;
    40                     }
    41                     [allData appendData:contents];
    42                 }
    43                 NSString *strContents = [[NSString alloc]initWithData:allData encoding:NSUTF8StringEncoding];
    44                 NSLog(@"%@",strContents);
    45             }
    46             //4.关闭文件
    47             [infh closeFile];
    48         }
    49         else
    50         {
    51             NSLog(@"文件创建失败");
    52         }
    53         
    54         //5.写文件的例子
    55         [fm createFileAtPath:@"2.txt" contents:nil attributes:nil];
    56         //写文件时只能写已经存在的文件,自己不主动创建文件
    57         NSFileHandle *outfh = [NSFileHandle fileHandleForWritingAtPath:@"2.txt"];
    58         if(outfh)
    59         {
    60             NSData *data = [@"hello world" dataUsingEncoding:NSUTF8StringEncoding];
    61             //写文件
    62             [outfh writeData:data];
    63         }
    64         [outfh closeFile];
    65     }
    66     return 0;
    67 }
     
  • 相关阅读:
    session的使用
    不可变对象的魅力
    协变和逆变
    LaTeX 学习小结
    KMP 算法的两种实现
    MySQL MVCC
    Java 并发之 Executor 框架
    Java 动态代理的简单使用和理解
    Java 偏向锁、轻量级锁和重量级锁
    事件循环和协程
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/4755876.html
Copyright © 2020-2023  润新知