Objective-c 读写文本文件

Objective-C 基础入门(三) 读写文件与回调 四、通过 NSString 和 NSData 读写文件 1.通过 NSString 写入文件 在将字符串对象写入文件时,要指定字符串编码。字符串编码是描述字符和代表的数字之间的映射关系。常用的编码有 ASII编码、UTF-8 和 UTF-16。 NSMutableString *str = [NSMutableString new]; for(int i=0;i<10;i++) { [str appendString:@"Aaron is cool!\n"]; } [str writ 阅读详情

读写文件

NSString *path = @"/Users/Allen/Desktop/test.dat";
 
NSString *temp = @"Allen Dang";
int i = 100;
float f = 98.3333f;

NSMutableData *writer = [[NSMutableData alloc] init];
 
[writer appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]];
[writer appendBytes:&amp;i length:sizeof(i)];
[writer appendBytes:&amp;f length:sizeof(f)];
 
[writer writeToFile:path atomically:YES];
[writer release];

 

读文件

 

NSString *contentPath = [[NSBundle mainBundle] pathForResource:@"Content" ofType:@"txt"];

    NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

NSString *txtContent = [NSString stringWithContentsOfFile:contentPath encoding:NSUTF8StringEncoding error:nil];

 

 

写文件

 

NSString *str = @"asdasdads";

        NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

        NSData *data = [str dataUsingEncoding:enc];

        NSString *filename = @"/Users/xxx/files.txt"];

        [data writeToFile: filename atomically: NO];






int ii;
float ff;
NSString *ttemp;
 
NSData *reader = [NSData dataWithContentsOfFile:path];
ttemp = [[NSString alloc] initWithData:[reader subdataWithRange:NSMakeRange(0, [temp length])]
                                  encoding:NSUTF8StringEncoding];
[reader getBytes:&amp;ii range:NSMakeRange([temp length], sizeof(ii))];
[reader getBytes:&amp;ff range:NSMakeRange([temp length] + sizeof(ii), sizeof(ff))];
 
NSLog(@"string:%@  int:%i float:%f", ttemp, ii, ff);
 
[temp release];
[ttemp release];
[path release];

NSString为UTF8编码的函数

@interface NSString (OAURLEncodingAdditions)

- (NSString *)URLEncodedString;

- (NSString *)URLDecodedString;

@end


@implementation NSString (OAURLEncodingAdditions)
- (NSString *)URLEncodedString{    
    NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)self, NULL, CFSTR("!*'();:@&=+$,/?%#[]"), kCFStringEncodingUTF8);
   [result autorelease];
   return result;
}
- (NSString*)URLDecodedString{
   NSString *result = (NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, (CFStringRef)self, CFSTR(""), kCFStringEncodingUTF8);
   [result autorelease];
   return result;
}
@end

 

 

 

 

 

NSString NSData 转换与常见的 NSString 和 NSMutableString 方法


NSString* aStr = [[NSString alloc] initWithData:aData encoding:NSASCIIStringEncoding];

NSData* aData = [aStr dataUsingEncoding: NSASCIIStringEncoding];




NSString方法 
+(id) stringWithContentsOfFile:path encoding:enc error:err 
创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中错误 

+(id) stringWithContentsOfURL:url encoding:enc error:err 
创建一个新的字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误 

+(id) string 
创建一个新的空字符串 

+(id) stringWithString:nsstring 
创建一个新的字符串,并将其设置为nsstring 

-(id)initWithString:nsstring 
将分配的字符串设置为nsstring 

-(id) initWithContentsOfFile:path encoding:enc error:err 
将字符串设置为path制定的文件的内容 

-(id) initWithContentsOfURL:url encoding:enc error:err 
将字符串设置为url(NSURL *)url的内容,使用字符编码enc,如果非零,则返回err中的错误 

-(id) (UNSIgned int)length 
返回字符串中的字符数目 

-(unichar)characterAtIndex:i 
返回索引i的Unicode字符 

-(NSString *)substringFromIndex:i 
返回从i开始知道结尾的子字符串 

-(NSString *)substringWithRange:range 
根据指定范围返回子字符串 

-(NSString *)substringToIndex:i 
返回从该字符串开始到索i的子字符串 

-(NSComparator *)caseInsensitiveCompare:nsstring 
比较两个字符串,忽略大小写 

-(NSComparator *)compare:nsstring 
比较两个字符串 

-(BOOL)hasPrefix:nsstring 
测试字符串是否以nsstring开始 

-(BOOL)hasSuffix:nsstring 
测试字符串是否以nsstrng结尾 

-(BOOL)isEqualToString:nsstring 
测试两个字符串是否相等 

-(NSString *) capitalizedString 
返回每个单词首字母大写的字符串(每个单词的其余字母转换为小写) 

-(NSString *)lowercaseString 
返回转换为小写的字符串 

-(NSString *)uppercaseString 
返回转换为大写的字符串 

-(const char*)UTF8String 
返回转换为UIF-8字符串的字符串 

-(double)doubleValue 
返回转换为double的字符串 

-(float)floatValue 
返回转换为浮点值的字符串 

-(NSInteger)integerValue 
返回转换为NSInteger整数的字符串 

-(int)intValue 
返回转换为整数的字符串 

NSMutableString方法 
+(id) stringWithCapacity:size 
创建一个字符串,初始包含size的字符 

-(id) initWithCapacity:size 
使用初始容量为size的字符串来初始化字符串 

-(void) setString:nsstring 
将字符串设置为nsstring 

-(void) appendString:nsstring 
在接收者的末尾附加nsstring 

-(void) deleteCharactersInRange:range 
删除指定range中的字符 

-(void) insertString:nsstring atIndex:i 
以索引i为起始位置插入nsstring 

-(void) replaceCharactersInRange:range withString:nsstring 
使用nsstring替换range指定的字符 

-(void) replaceOccurrencesOf 
String:nsstring withString:nsstring2 options:opts range:range 
根 据选项opts。使用指定range中的nsstring2替换所有的nsstring。选项可以包括NSBackwardsSearch(从范围的结尾 开始搜索)NSAnchoredSearch(nsstring必须匹配范围的开始),NSLiteralSearch(执行逐字节比较以及 NSCaceInsensitiveSearch的按位或组合)


*----------------在串中搜索子串----------------*/        

    NSString *string1 = @"This is a string";
    NSString *string2 = @"string";
    NSRange range = [string1 rangeOfString:string2];
    int location = range.location;
    int leight = range.length;
    NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%i,Leight:%i",location,leight]];
    NSLog(@"astring:%@",astring);
    [astring release];


            

    //-substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
    NSString *string1 = @"This is a string";
    NSString *string2 = [string1 substringToIndex:3];
    NSLog(@"string2:%@",string2);




    //-substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符
    NSString *string1 = @"This is a string";
    NSString *string2 = [string1 substringFromIndex:3];
    NSLog(@"string2:%@",string2);




    //-substringWithRange: //按照所给出的位置,长度,任意地从字符串中截取子串
    NSString *string1 = @"This is a string";
    NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];
    NSLog(@"string2:%@",string2);



【NSString字符串的读写 Objective-C语言】 NSString字符串的读写 Objective-C语言 阅读详情

相关推荐

Objective-C语言的文件操作

通过这篇文章,我们了解了如何在Objective-C中进行基本的文件操作,包括文件的创建、读取、写入、删除,目录的管理,以及获取文件属性等。掌握这些基础知识后,你将能够在自己的应用程序中自如地处理文件,增强你的应用的实用性。在实际开发中,文件操作的应用非常广泛。例如,对于数据持久化,通常会涉及到将数据写入文件或从文件中读取数据。此外,对于一些需要记录日志的应用,文件操作也是不可或缺的一部分。

2501_90195366的博客 795

NSData NSString 读写文件

遍历字典 for (id key in paramValues_){ NSLog(@"key: %@ ,value: %@",key,[paramValues_ objectForKey:key]); }   读写文件 NSString *path = @"/Users/Allen/Desktop/test.dat";   NSString *t...

任香980101 232

Objective-C property详解

OC语言是一个比较好玩语言,就比如为什么天杀的为什么要出现@property这个语法来刁难我们这些小白呢?不过,细细咀嚼一下,我们还是可以消化的。 属性 使用说明 是否为默认值 readonly 只读,只生成读的存根 否 readwrite 可读写,生成读写的存根 是 atomic 线程保护,耗费资源,多线程情况下才使用 是 nonatomic

Handos 1091

Ios一行一行读取大文件

//DDFileReader.h @interface DDFileReader : NSObject { NSString * filePath; NSFileHandle * fileHandle; unsigned long long currentOffset; unsigned long long totalFileLength; NSStr

yiyunhzy的专栏 2363

Objective-C实现读写锁(附完整源码)

Objective-C实现读写锁(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 381

STM32H743的ADC还能这么玩?定时器触发+DMA搬运,构建低CPU占用的数据流

本文深入探讨了STM32H743微控制器中ADC的高效使用方法,通过定时器触发和DMA搬运技术实现低CPU占用的数据流采集。详细解析了硬件架构、CubeMX配置步骤及高级优化技巧,包括双缓冲技术和多ADC同步采样,适用于电机控制、音频采集等高性能应用场景。

weixin_30698527的博客 647

oc文件读取

oc文件读取与处理 文件读取 文件读取首先需要绑定bundle,其中test为文件名,后面是文件类型 NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"txt"]; 读取到NSData中 接着就是读取文件,可以选择直接读取到NSData中 NSData *data = [[NSData alloc] initWithContentsOfFile:path]; 先将数据json格式化,在解析到字典中 NSArr

缄默的博客 1505

Spring Boot日志可视化实战:5分钟搞定Promtail采集与Grafana查询(避坑指南)

本文详细介绍了如何通过Promtail和Grafana实现Spring Boot日志的可视化查询,提供从日志采集到高效查询的全流程实战指南,重点解决部署中的常见问题。内容包括Logback配置、Promtail日志采集、Grafana的LogQL查询技巧及生产环境优化建议,帮助开发者快速定位和解决日志问题。

weixin_42526015的博客 106

OC中读写文件 (本地文件/网络文件)

//读取文件(本地文件/网络文件) NSString *str21=@"www.baidu.com"; NSURL *httpURL=[NSURL URLWithString:str21];//网络文件--NSURL 路径类 NSURL *fileURL=[NSURL fileURLWithPath:str21];//本地文件

筑梦小丑 2214

低功耗基础概念——Level Shifter cell补充

信号跨越不同级别电压模块进行驱动时,需要使用level shifter。 H2L Level shifer 从高电压到低电压的level shifter,可以是两个反相器的串联。 输入高电平区域信号INH,输出低电平区域信号OUTL,注意供应电源由低电压模块提供,即图中的VDDL。 从图中可以看出,H2L的level shifter只会引入一个buffer的延迟,对时序的影响较小。 L2H Level shifer 用低电压区域的信号invert和buffer之后得到的一对信号来驱动工作在高电压区域的交

qq_36480087的博客 1万+

手把手教你用Payload Dumper工具,把官方卡刷包变成线刷包救砖(附Fastbootd进入方法)

本文详细介绍了如何使用Payload Dumper工具将官方卡刷包转换为线刷包进行救砖操作。通过提取payload.bin文件中的分区镜像,并利用fastbootd模式完成刷写,帮助用户解决安卓设备系统故障问题。文章包含环境搭建、工具使用、常见问题解决方案等实用内容,适合需要刷机救砖的用户参考。

weixin_42639246的博客 616

Objective-C文件的存取

相对于其他语言Objective-C有许多独特的地方,但是当稍微学习一下的时候,你会发现她的魅力所在。一个IO的基本文件操作就可以体现出来。

911

大模型训练显存瘦身全记录:从ZeRO-3参数分区到CPU Offload的硬件协奏曲

本文详细解析了如何通过ZeRO-3参数分区与CPU/NVMe卸载技术优化大模型训练的显存使用。结合bf16混合精度与梯度累积等策略,实现在消费级GPU上高效训练百亿参数模型,显著提升硬件利用率与训练效率。

weixin_29051245的博客 435

NSString从文件中读取字符串以及字符串导出(写入到文件)

void test2(){ NSString *path = @"/Users/gx/Desktop/test_utf8.txt"; //NSString *str = [NSString stringWithContentsOfFile:path]; //UTF-8编码 NSString *str = [NSString stringWith...

administrator99999的博客 214

Codex 团队如何用自己的产品构建产品——整个 Spec 只有 10 个要点

OpenAI Codex团队采用极简产品开发模式,整个产品规格仅10个要点。团队50-100人长期仅1名PM,设计师代码量已超过工程师。产品负责人Alexander Embiricos透露,团队几乎不写详细文档,仅在需要协调时写简短要点。OpenAI采用独特规划哲学:只做8周内短期或长期方向性规划,拒绝中期路线图。2025年GPT-5.2 Codex发布后,模型能力突破催生了桌面应用开发。团队强调"让离代码最近的人做决策",PM角色转变为"填空者",设计师与工程师界限

347

深度解析机器人关节位置环控制:从理论到实践

本文系统阐述了机器人关节位置环控制的核心原理与实现方法。首先介绍了关节控制的基础框架,阐明位置环在闭环控制中的关键作用。随后深入解析PID控制算法原理,包括比例、积分、微分项的功能与参数整定原则。在软件实现部分,提供了模块化设计思路和Python伪代码示例,强调实时性保障和异常处理机制。文章还包含典型面试问题解答和应用案例,展示如何通过参数优化将定位精度提升20倍。最后指出未来发展趋势将聚焦算法自适应性和系统稳健性。全文兼顾理论深度与实践指导,为开发者提供从基础到进阶的完整技术路线图。

郑伟强dev的专栏 51

2013-07-19 文件操作

代码:     //init方法、便利构造器  这是OC中初始化对象的两种方法        NSString *path1= @"/Users/1010/Desktop/abc.txt";     //用一个文件来初始化一个字符串,也就是读文件中的内容     NSError *error = nil;    // NSString *content1

litingyan16的专栏 859

华为OD机考双机位C卷 - AI处理器组合 (Java & Python & JS & GO & C++ & C)

> 2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 华为OD机试双机位C卷真题目录点击查看: [【全网首发】2026华为OD机位C卷 机考真题题库含考点说明以及在线OJ(OD上机考试双机位C卷)](https://blog.csdn.net/banxia_frontend/article/details/155503868)

算法大师! 233

NSData与NSMutableData

int main (int argc, const char * argv[]) {     @autoreleasepool {                  NSString * path = @"Users/gavin/Desktop/myfile.rtf";      NSString * temp = @"Hello world"

盗梦的博客 370

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【读书笔记】iOS-读取文本文件

一,文本文件的内容。 二,工程目录 三,ViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //读取文本文件 ...

weixin_30336061的博客 156

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

OC中的NSData类

概念在读写文件或者下载的时候,需要频繁的将数据读入一个缓存区,而在OC中,我们用NSData这个类来设置缓冲区,将文件的内容读入缓冲区或者将缓冲区内的内容写到一个文件。 分类:不可变NSData和可变 NSMutableDataNSDataPS:

累人猿 1123

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

iOS 批量创建文件

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);     NSString *documentsDirectory = [paths objectAtIndex:0];     NSString *path = [documentsD

xiaojian2314的专栏 599

excel转plist文件

原文:miao_zi 需要在本地存储一些不变的数据,但这些数据存在excel表格里,怎么使用它们呢?一种方法是将excel转换成plist文件。 excel表格的内容类似于 SchoolID SchoolName 0000001 中学1 ...

226

Objective-C 实现读写锁

读写锁 @interface RWLock : NSObject - (void)readLock; - (void)readUnlock; - (void)writeLock; - (void)writeUnlock; @end    #import "RWLock.h" @interface RWLock() @property (no...

weixin_30237281的博客 269

Objective-C的property理解

前面说到了内存管理,现在来说一下OC的一些高级语法。当然这些语法中还会涉及内存中的管理。 1、property 如果学习过Java,就会知道我门定义成员变量就会生成setter和getter。在OC中也不例外,但是我门需要自己写,Java的编译器会自己帮助生成。如果成员变量太多,那么要写很多setter和getter。于是出现了关键字property。这个关键字可以自动帮我们声明setter和...

走过路过不要错过 571
上一篇: 【Objective-c算法】 A*自动寻路算法
下一篇: NSDictionary(字典)类使用
TT5267621
博客等级 码龄15年 154粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值