zoukankan      html  css  js  c++  java
  • 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 }
     
  • 相关阅读:
    【转载】 HTTP 中 GET 与 POST 的区别
    JS 浏览器cookie的设置,读取,删除
    JS Event事件流(冒泡机制、捕获机制、事件绑定)
    DOM节点树和元素树--深度遍历
    Html_Task4(知识点:水平居中+垂直居中/position/float/border-radius)
    百度前端技术学院—斌斌学院题库
    百度前端技术学院—-小薇学院(HTML+CSS课程任务)
    js正则表达式
    js设计模式(一)发布订阅模式
    vue学习笔记(一)——利用vue-cli搭建一个前端项目
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/4755876.html
Copyright © 2011-2022 走看看