//
// 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-文件读写的更多相关文章

  1. Object-c学习之路六(oc字符串文件读写)

    // // main.m // NSString // // Created by WildCat on 13-7-25. // Copyright (c) 2013年 wildcat. All ri ...

  2. IOS学习笔记25—HTTP操作之ASIHTTPRequest

    IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...

  3. iOS学习笔记-精华整理

    iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...

  4. iOS学习笔记总结整理

    来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...

  5. iOS学习笔记17-FMDB

    上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...

  6. iOS学习笔记17-FMDB你好!

    上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...

  7. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  8. iOS学习笔记10-UIView动画

    上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UI ...

  9. iOS学习笔记之ARC内存管理

    iOS学习笔记之ARC内存管理 写在前面 ARC(Automatic Reference Counting),自动引用计数,是iOS中采用的一种内存管理方式. 指针变量与对象所有权 指针变量暗含了对其 ...

  10. iOS学习笔记之UITableViewController&UITableView

    iOS学习笔记之UITableViewController&UITableView 写在前面 上个月末到现在一直都在忙实验室的事情,与导师讨论之后,发现目前在实验室完成的工作还不足以写成毕业论 ...

随机推荐

  1. 如何自己编译生成Eclipse插件,如hadoop-eclipse-plugin-2.2.0.jar

    如何自己编译生成Eclipse插件,如hadoop-eclipse-plugin-2.2.0.jar http://cxshun.iteye.com/blog/1876366 大数据是当今的一个热门话 ...

  2. 有关gcc的扩展__attribute__((unused))

    ================================ Author: taoyuetao Email: tao_yuetao@yahoo.com.cn Blog: taoyuetao.cu ...

  3. JAVA基础入门

    Java入门基础 1.IDE->Eclipse 新建程序步骤 1.创建一个Java项目 2.创建一个包(package) 也就相当于C#中的命名空间C++中的头文件 3.创建一个类 这样就完成了 ...

  4. 理解 MEF

    1.它解决什么问题? 考虑下面的需求,甲程序员对外暴露接口,内部提供实现.乙程序员使用甲提供的接口,根据面向接口编程的原则,乙关联一个接口类型的引用.正常情况下,乙要使用甲的实现,必须实例化一个具体对 ...

  5. mongodb地理位置索引

    初始化集合(经度在前,纬度在后) ? 1 2 3 mongos> db.checkins.insert({ "_id" : "101", "lo ...

  6. ThinkPHP中的动态缓存(S方法)和快速缓存(F方法)(转)

    系统默认的缓存方式是采用File方式缓存,我们可以在项目配置文件里面定义其他的缓存方式,例如,修改默认的缓存方式为Xcache(当然,你的环境需要支持Xcache)    对于File方式缓存下的缓存 ...

  7. Oracle 11g client的安装和配置。

    数据库和client在不同的机器之上. 在安装之前,在安装Oracle数据库的server上导航到以下的文件夹. 将listener.ora和tnsnames.ora中的host中的localhost ...

  8. mysql优化之连接优化

    Posted by Money Talks on 2012/02/23 | 第一篇 序章第二篇 连接优化第三篇 索引优化第四篇 查询优化第五篇 到实战中去 连接优化 连接优化主要指客户端连接数据库以及 ...

  9. new的例子

    12.6 编写函数,返回一个动态分配的int的vector.将此vector传递给另一个函数,这个函数读取标准输入,将读入的值保存在vector元素中.再将vector传递给另一个函数,打印读入的值. ...

  10. setvbuf

    函数名: setvbuf 用 法: int setvbuf(FILE *stream, char *buf, int type, unsigned size); type : 期望缓冲区的类型: _I ...