博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-c:NSFileHandle类,创建流对象,对文件进行写入、读取的操作
阅读量:7287 次
发布时间:2019-06-30

本文共 2251 字,大约阅读时间需要 7 分钟。

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 
10 11 int main(int argc, const char * argv[])12 {13 @autoreleasepool14 {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 else50 {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://pspjm.baihongyu.com/

你可能感兴趣的文章
mysql 读写分离mysql-proxy 代理
查看>>
httpd+tomcat(3) -- mod_jk
查看>>
MySQL:卸载、安装MySQL8.***
查看>>
CentOS 7安装Docker及常用命令
查看>>
VMware Workstation 7.0中文版下载
查看>>
Don’t forget about column projection
查看>>
linux系统修复及忘记密码的处理方法
查看>>
CAS和ABA问题
查看>>
js创建对象的几种常用方式
查看>>
SQL Server AlwaysOn可用性及故障转移
查看>>
Spring Cloud 注册中心高可用搭建
查看>>
js 简单版本号比较
查看>>
Linux用户配置sudo权限(visudo)
查看>>
rocketmq 事物消息压测
查看>>
eclipse debug 多线程
查看>>
ubuntu System Settings 里面的内容显示不正常
查看>>
Udp传输入门
查看>>
什么是阻塞队列?如何使用阻塞队列来实现生产者-消费者模型?
查看>>
3.C#.Net 英汉词典的编写
查看>>
shell习题_6
查看>>