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 写在前面 上个月末到现在一直都在忙实验室的事情,与导师讨论之后,发现目前在实验室完成的工作还不足以写成毕业论 ...
随机推荐
- 如果iis的配置文件 applicationHost.config坏掉了, 会在 C:\inetpub\history\ 中存储历史备份。复制过去还原就可以了-摘自网络
You will usually get the error ‘Configuration file is not well-formed XML’ ‘C:\Windows\system32\inet ...
- arm 交叉编译时 gcc 的 Options
https://sourceware.org/binutils/docs/as/ARM-Options.html https://gcc.gnu.org/onlinedocs/gcc-4.5.3/gc ...
- linux和MAC下静态库.a文件合并
这两天开发群了讨论了一个文体,如何合并众多的.a文件. 有人给了建议,使用ar 解.a,生成.o.然后合并所有的.o文件. 我在MAC OS下尝试了一下. 正好赶上编译了ffmpeg的IOS armv ...
- 函数(C++ Primer读书笔记)
C++ Primer 第五版课后题 练习6.32 :下面的函数合法吗?如果合法,说明其功能:如果不合法,修改其中的错误并解释原因. #include <iostream> using na ...
- 【转】科普Spark,Spark是什么,如何使用Spark
本博文是转自如下链接,为了方便自己查阅学习和他人交流.感谢原博主的提供! http://www.aboutyun.com/thread-6849-1-1.html http://www.aboutyu ...
- lab 1实验报告
练习1:理解通过make生成执行文件的过程. 1.操作系统镜像文件ucore.img是如何一步一步生成的? 生成 bin/kern 部分 生成 init.o 生成 readline.o 生成 stdi ...
- ServletContext获取项目真实路径
import javax.servlet.ServletContext; import org.springframework.web.context.ServletContextAware; /** ...
- Spring Framework 5.0.0.M3中文文档 翻译记录 introduction
翻译自: http://docs.spring.io/spring/docs/5.0.0.M3/spring-framework-reference/htmlsingle/#spring.tld.ha ...
- 理解 MEF
1.它解决什么问题? 考虑下面的需求,甲程序员对外暴露接口,内部提供实现.乙程序员使用甲提供的接口,根据面向接口编程的原则,乙关联一个接口类型的引用.正常情况下,乙要使用甲的实现,必须实例化一个具体对 ...
- “cvSnakeImage”: 找不到标识符
1>g:\project\opencv\helloopencv\helloopencv\helloopencv.cpp(74) : error C2065: "CV_VALUE&quo ...