ios开发读取文件,ios读取app文件

iOS开发,plist文件读写操作

这里有一点需要注意:

网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了观山湖免费建站欢迎大家使用!

命名的时候不能用Info.plist , INfo.plist, xxxInfo.plist等形式,否则会与系统中存在的Info.plist文件发生冲突。

点击Root这一行,然后通过点击右键-Add Row或者点击Root后面的加号来增加一行。

这一行中包含三个属性,key、type、value。其中key是字段属性,type是字段类型,value是字段对应的值。

Type包含7中类型,对写入的数据结构应属于7仲:

(NSString,NSData,NSDate,NSNumber,NSArray,NSDictionary)

读取数据

文件是什么类型,就用什么类型的数据来接收

参考文档1: iOS开发,plist文件读写那些事

参考文档2: iOS开发中怎么创建Plist文件

参考文档3: 【iOS】plist无法写入的原因

参考文档4: plist 文件写入与读取

iOS 如何生成EXCEL文档和读取EXCEL文档

最近开发一个蓝牙项目,需要导出和导入EXCEL数据,由于之前没有接触这类功能,查阅了相关资料,最终选择采用libxlsxwriter库实现EXCEL文档生成、CoreXLSX实现EXCEL文档内容解析,做个简单汇总方便以后查阅,费话不多说,直接上干货。

Libxlsxwriter 是一个 C 库,可用于在 Excel 2007+ XLSX 文件中写入文本、数字、公式和指向多个工作表的超链接。

具体功能介绍请跳转github的库地址连接:

1、项目地址

2、使用手册地址

因为项目是用swift开发,所以这里主要简单介绍下swift项目下如何使用:

数据格式建议采用Array的方式存储每一组的数据,方便数据写入处理

文件名称根据实际需求定义,路径只需要文件夹路径拼接文件名即可

创建表格过程如下:

1、生成一张表格

2、创建一个sheet

3、设置表格的样式、格式(包含文字格式、文字颜色、对齐方式等)

样式设置可参考使用手册里的说明,这里大概列几个供参考:

4、关闭表格创建

如果格式不对或者样式不喜欢,可以结合实际重新设置

QuickLook的框架详解请查看:

可以通过QuickLook打开EXCEL文档,同时QuickLook还集成一系列功能(保存文件、传送文件等),导出文档功能可用这个框架实现,具体如何导出请看框架详解说明即可

可以通过设置样式创建各种复杂的EXCEL表格,文档说明也非常详细,用户很容易就可以利用该框架创建满足各种需求的EXCEL表格

没有EXCEL读取功能,因此读取功能只能另外处理

至此,一个简单的EXCEL创建过程已经完成。libxlsxwriter功能十分强大, 如果要生成一个复杂的表格,请仔细研读格式设置说明文档

CoreXLSX是一个库,它专注于表示基于XML的XLSX电子表格格式的底层结构。它允许您打开扩展名为.xlsx的电子表格存档,并将其内部结构映射到直接用Swift表示的模型类型中。

需要注意的是,此库仅为.xlsx格式提供只读支持。由于旧的legacy.xls电子表格格式具有完全不同的内部结构,如果您需要使用该类型的文件,请参考其他库。

如果您的.xlsx文件使用ECMA-376敏捷加密(这似乎是最流行的一种),请查看CryptoOffice库。

项目地址:

可通过系统提供的API打开,如下:

可通过UIDocumentPickerDelegate回调方法拿到对应的文件路径, 这里需要注意一个细节 ,如下图

读取文件时需要授权,不然有的文件无法读取,会报没有权限的错误提示,读取数据完成后,需要关闭授权

采用CoreXLSX相关API去读取数据,具体可参考项目文档说明,因为项目在读取数据时需要校验文档内容是否合法,不合法需要提示用户重新选择其他文件,校验规则可根据实际需求去做,以下列举个人项目的简单校验,如下图

最终rows得到的就是每组的数据,可通过遍历获取对应的数据,如有疑问,请参考官方文档或者官方DEMO

参考文献:

libxlsxwriter开源库:

CoreXLSX开源库:

XlsxReaderWriterSwift开源库:

谢谢各位的无私奉献。。。

iOS开发打开word、excel、ppt、txt、pdf文档(可在线浏览)

非常感谢大家对我的关注!!!!

打开文件的方法:

1.获取文件的沙盒路径path

2.将path路径转化URL

3.用webView显示出来

iOS开发生成txt文件

一开始我用的方法一写,但是后来发现在高系统上报错(大概报错内容:NSCocoaErrorDomain:257)。

后来解决了,做个记录。

1、在低于iOS13的系统中。用创建文件夹的形式可以如下:

+ (NSString *)tmpLogPath

{

NSString *docPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library"];

NSString *dirPath = [docPath stringByAppendingPathComponent:@"mylog"];

NSString *filePath = [dirPath stringByAppendingPathComponent:@"tmpLog.txt"];

return filePath;

}

+ (void)writeTmpLog:(NSString *)aMsg

{

NSString *filePath = [[self class] tmpLogPath];

if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) {

    BOOL isDir = NO;

    BOOL hasDir = [[NSFileManager defaultManager] fileExistsAtPath:filePath isDirectory:isDir];

    if (!hasDir || !isDir) {

        [[NSFileManager defaultManager] createDirectoryAtPath:filePath withIntermediateDirectories:NO attributes:nil error:nil];

    }

}

NSError *error;

NSString *content =[NSString stringWithContentsOfFile:filePath

                                            encoding:NSUTF8StringEncoding

                                                error:error];

NSString *newContent = [NSString stringWithFormat:@"%@\n%@",content,aMsg];

[newContent writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];

}

+ (void)clearTmpLog

{

NSString *filePath = [[self class] tmpLogPath];

[@"" writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];

}

2、但是在iOS13上,不能这样写。系统会默认创建以为***.txt的文件夹,在写入的时候就出问题了。

会报错:NSCocoaErrorDomain:257 就是

NSFileReadNoPermissionError = 257,/ /读取错误(权限问题)

所以可以这样写:

+ (NSString *)tmpLogPath {

NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];

NSString *filePath = [documentPath stringByAppendingPathComponent:@"mylog/tmpLog.txt"];

returnfilePath;

}

+ (void)writeTmpLog:(NSString*)aMsg {

NSString*fieldPath = [[self class]tmpLogPath];

NSLog(@"当前文件大小:%llu",[self fileSizeWithPath:fieldPath]);

NSFileManager *manager = [NSFileManager defaultManager];

if(![managerfileExistsAtPath:fieldPath]){

    NSError*error;

    [aMsgwriteToFile:fieldPath atomically:YES encoding:NSUTF8StringEncoding error:error];

    if(error) {

        NSLog(@"写入失败:%@\n",[error localizedDescription]);

    }

}else{

    NSError*error;

    NSError*writeError;

    NSString *content =[NSString stringWithContentsOfFile:fieldPath

                                                encoding:NSUTF8StringEncoding

                                                    error:error];

    if(error) {

        NSLog(@"读取失败:%@\n",[error localizedDescription]);

    }

    NSString*newContent = [NSString stringWithFormat:@"%@\n%@",content,aMsg];

    [newContentwriteToFile:fieldPath atomically:YES encoding:NSUTF8StringEncoding error:writeError];

    if(writeError) {

        NSLog(@"写入失败:%@\n",[writeErrorlocalizedDescription]);

    }

}

}

//获取文件大小

+ (unsignedlonglong)fileSizeWithPath:(NSString*)path {

signedlonglongfileSize =0;

NSFileManager *fileManager = [NSFileManager defaultManager];

if([fileManagerfileExistsAtPath:path]) {

    NSError*error =nil;

    NSDictionary*fileDict = [fileManagerattributesOfItemAtPath:patherror:error];

    if(!error fileDict) {

        fileSize = [fileDictfileSize];

    }

}

returnfileSize;

}

+ (void)clearTmpLog {

NSError*error;

NSFileManager *manager = [NSFileManager defaultManager];

NSString*filePath = [[selfclass]tmpLogPath];

[managerremoveItemAtPath:filePatherror:error];

if(error) {

    NSLog(@"删除失败:%@\n",[error localizedDescription]);

}

}

ios关于文件的读取

ios关于文件的读取有四种方法:

#import foundation foundation.h=""

int main(int argc, const char * argv[])

{

@autoreleasepool

{

//第一种方法: NSFileManager实例方法读取数据

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES);

NSString* thepath = [paths lastObject];

thepath = [thepath stringByAppendingPathComponent:@"fd_list.txt"];

NSLog(@"桌面目录:%@", thepath);

NSFileManager* fm = [NSFileManager defaultManager];

NSData* data = [[NSData alloc] init];

data = [fm contentsAtPath:thepath];

NSLog(@"%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);

//第二种方法: NSData类方法读取数据

data = [NSData dataWithContentsOfFile:thepath];

NSLog(@"NSData类方法读取的内容是:%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);

//第三种方法: NSString类方法读取内容

NSString* content = [NSString stringWithContentsOfFile:thepath encoding:NSUTF8StringEncoding error:nil];

NSLog(@"NSString类方法读取的内容是:\n%@",content);

//第四种方法: NSFileHandle实例方法读取内容

NSFileHandle* fh = [NSFileHandle fileHandleForReadingAtPath:thepath];

data = [fh readDataToEndOfFile];

NSLog(@"NSFileHandle实例读取的内容是:\n%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);

}

return 0;

}

/foundation


当前标题:ios开发读取文件,ios读取app文件
文章URL:http://scyanting.com/article/dssphpc.html