IOS 学习笔记 2015-04-03 OC-API-文件读写
//
// WPFileHelper.m
// OC-API-文件操作
//
// Created by wangtouwang on 15/4/3.
// Copyright (c) 2015年 wangtouwang. All rights reserved.
// #import "WPFileHelper.h" @implementation WPFileHelper +(NSString *)getFileToString:(int)tag{
NSString *result ;
//目标 读取字符型文件 例如后缀.txt
if (tag==) {
//方法1 使用 NSString
NSError *error;
NSString *filePath =@"/Users/wangtouwang/Desktop/OC-控件.txt";
result = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
if (error) {
NSLog(@"read error ,the error is %@",error);
}else{
NSLog(@"read success,the file content is %@",result);
}
}else if (tag==){
//方法2 使用 NSFileManager
NSString *filePath =@"/Users/wangtouwang/Desktop/OC-控件.txt";
NSFileManager *manager=[NSFileManager defaultManager];
NSData *data = [manager contentsAtPath:filePath];
result= [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
//NSLog(@"%@",result);
}else if (tag==){
//方法3 NSFileHandle
NSString *filePath =@"/Users/wangtouwang/Desktop/OC-控件.txt";
NSFileHandle *handler = [NSFileHandle fileHandleForReadingAtPath:filePath];
NSData *data = [handler readDataToEndOfFile];
result= [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
[handler closeFile];
//NSLog(@"%@",result);
}else if(tag==){
//方法4 NSData
NSString *filePath =@"/Users/wangtouwang/Desktop/OC-控件.txt";
//NSDataReadingMappedIfSafe参数。使用这个参数后,iOS就不会把整个文件全部读取的内存了,而是将文件映射到进程的地址空间中,
//这么做并不会占用实际内存。这样就可以解决内存满的问题。
NSData *data= [NSData dataWithContentsOfFile:filePath options:nil error:nil];
result =[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
// NSLog(@"%@",result);
}
return result;
} +(NSData *) getFileToData:(int)tag{
NSData *result = nil;
//目标 读取二进制文件 例如 图片
NSString *imagePath = @"/Users/wangtouwang/Desktop/TEMP/51sPBOtpQ0L._SL500_AA300_.jpg";
if (tag==) {
// 方法1 NSData
result = [NSData dataWithContentsOfFile:imagePath];
// NSInteger len = result.length;
//NSLog(@"长度 = %lu",len);
}else if (tag == ){
//方法2 NSFileHandle
NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:imagePath];
result =[handle readDataToEndOfFile];
[handle closeFile];
//方法3 NSFileManager
}else if(tag==){
NSFileManager *manger = [NSFileManager defaultManager];
result = [manger contentsAtPath:imagePath];
}
return result;
} +(void)writerFileByString:(NSString *)str{
NSString *content = str;
NSString *filePath =@"/Users/wangtouwang/Desktop/新文件.txt";
// 写入字符型文件 例如后缀.txt 假如文件不存在依然成功
int tag =;
if (tag==) {
//方法1 NSString
[content writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];
}else if (tag==){
//方法2 NSFileHandle 假如文件不存在会失败
NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding];
NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:filePath];
[handle writeData:data];
[handle closeFile];
}else if(tag==){
//方法3 NSFileManager 假如文件不存在依然成功
NSFileManager *manager = [NSFileManager defaultManager];
BOOL flag = [manager createFileAtPath:filePath contents:[content dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
if (flag) {
NSLog(@"写入成功");
}
}else if (tag==){
//方法4 NSMutableData 假如文件不存在依然成功
NSMutableData *writer = [[NSMutableData alloc] init];
[writer appendData:[content dataUsingEncoding:NSUTF8StringEncoding]];
[writer writeToFile:filePath atomically:YES];
}
} +(void)writerFileByData:(NSData *)data{
//写入二进制文件 例如图片
NSString *filePath =@"/Users/wangtouwang/Desktop/新文件.jpg";
int tag =;
if (tag==) {
//方法1 NSData
[data writeToFile:filePath atomically:YES];
}else if(tag==){
//方法2 NSFileHanle 假如文件不存在则会失败,应该先判断是否存在,再看是否需要创建
NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:filePath];
[handle writeData:data];
[handle classCode];
}else if(tag==){
//方法3 NSFileManager
NSFileManager *manager= [NSFileManager defaultManager];
[manager createFileAtPath:filePath contents:data attributes:nil];
}else if (tag==){
// 方法4 NSMutableData
NSMutableData *writer = [[NSMutableData alloc] init];
[writer appendData:data];
[writer writeToFile:filePath atomically:YES];
}
} @end
IOS 学习笔记 2015-04-03 OC-API-文件读写的更多相关文章
- Object-c学习之路六(oc字符串文件读写)
// // main.m // NSString // // Created by WildCat on 13-7-25. // Copyright (c) 2013年 wildcat. All ri ...
- IOS学习笔记25—HTTP操作之ASIHTTPRequest
IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...
- iOS学习笔记-精华整理
iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...
- iOS学习笔记总结整理
来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...
- iOS学习笔记17-FMDB
上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...
- iOS学习笔记17-FMDB你好!
上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- iOS学习笔记10-UIView动画
上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UI ...
- iOS学习笔记之ARC内存管理
iOS学习笔记之ARC内存管理 写在前面 ARC(Automatic Reference Counting),自动引用计数,是iOS中采用的一种内存管理方式. 指针变量与对象所有权 指针变量暗含了对其 ...
- iOS学习笔记之UITableViewController&UITableView
iOS学习笔记之UITableViewController&UITableView 写在前面 上个月末到现在一直都在忙实验室的事情,与导师讨论之后,发现目前在实验室完成的工作还不足以写成毕业论 ...
随机推荐
- npm 国内镜像资源 --转载
npm 是node.js 环境下的包管理器,非常强大智能. 生活这这片神奇的土地上,各种奇葩手段屡见不鲜啊. 为什么要换源? npm 官方站点 http://www.npmjs.org/ 并没有被墙, ...
- POJ1182食物链 (并查集)
第一反应就是和那个搞基的虫子的题很像(poj2492 http://www.cnblogs.com/wenruo/p/4658874.html),不过是把种类从2变成了3. 错在很白痴的地方,卡了好久 ...
- HTTP的升级产品:SPDY
一.什么是SPDY? SPDY是Google开发的基于传输控制协议(TCP)的应用层协议 .目前已经被用于Google Chrome浏览器中来访问Google的SSL加密服务.SPDY当前并不是一个标 ...
- 问题-[delphi2007、2010]无法二次启动,报EditorLineEnds.ttr被占用,进程一直有bds.exe?
问题现象:delphi2007.2010无法二次启动,报EditorLineEnds.ttr被占用,而且进程中一直有bds.exe的进程? 问题原因:问题处理:方法一:可能是系统更新的东东造在的.KB ...
- 传值(VIP)
页面间传值主要分为:1.属性传值.2.协议传值.3.单例传值.4.Block传值: 界面之间的传值: 1.从前往后:属性传值 2.从后往前:代理传值 3.多界面之间的传值 — 单例传值 ...
- JDK之jstat的用法
http://www.51testing.com/html/92/77492-203728.html jstat的用法 用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指 ...
- windows批量创建用户
一.建立用户的命令行语法: 建立用户:net user 用户名 密码 /add (如:net user test 123 /add) 提升权限:net localgro ...
- TFS 2010 让安装更简单,也让VSS成为历史
一转眼VS 2010 RC(Release Candidate)版本号已经公布一月多了,RTM(Release To Manufacturer)版本号也快妥了,已经进入了最后的倒计时,仅仅等4月12号 ...
- 读写应用程序数据-NSUserDefault、对象归档(NSKeyedArchiver)、文件操作
ios中数据持久化存储方式一般有5种:NSUserDefault.对象归档(NSKeyedArchiver).文件操作.数据库存储(SQLite3).CoreData. 1.NSUserDefault ...
- js中对arry数组的各种操作小结
最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊,为了在以后的工作中写出最优化的代码,我 ...