欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

ios開(kāi)發(fā)讀取文件,ios讀取app文件

iOS開(kāi)發(fā),plist文件讀寫(xiě)操作

這里有一點(diǎn)需要注意:

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了觀(guān)山湖免費(fèi)建站歡迎大家使用!

命名的時(shí)候不能用Info.plist , INfo.plist, xxxInfo.plist等形式,否則會(huì)與系統(tǒng)中存在的Info.plist文件發(fā)生沖突。

點(diǎn)擊Root這一行,然后通過(guò)點(diǎn)擊右鍵-Add Row或者點(diǎn)擊Root后面的加號(hào)來(lái)增加一行。

這一行中包含三個(gè)屬性,key、type、value。其中key是字段屬性,type是字段類(lèi)型,value是字段對(duì)應(yīng)的值。

Type包含7中類(lèi)型,對(duì)寫(xiě)入的數(shù)據(jù)結(jié)構(gòu)應(yīng)屬于7仲:

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

讀取數(shù)據(jù)

文件是什么類(lèi)型,就用什么類(lèi)型的數(shù)據(jù)來(lái)接收

參考文檔1: iOS開(kāi)發(fā),plist文件讀寫(xiě)那些事

參考文檔2: iOS開(kāi)發(fā)中怎么創(chuàng)建Plist文件

參考文檔3: 【iOS】plist無(wú)法寫(xiě)入的原因

參考文檔4: plist 文件寫(xiě)入與讀取

iOS 如何生成EXCEL文檔和讀取EXCEL文檔

最近開(kāi)發(fā)一個(gè)藍(lán)牙項(xiàng)目,需要導(dǎo)出和導(dǎo)入EXCEL數(shù)據(jù),由于之前沒(méi)有接觸這類(lèi)功能,查閱了相關(guān)資料,最終選擇采用libxlsxwriter庫(kù)實(shí)現(xiàn)EXCEL文檔生成、CoreXLSX實(shí)現(xiàn)EXCEL文檔內(nèi)容解析,做個(gè)簡(jiǎn)單匯總方便以后查閱,費(fèi)話(huà)不多說(shuō),直接上干貨。

Libxlsxwriter 是一個(gè) C 庫(kù),可用于在 Excel 2007+ XLSX 文件中寫(xiě)入文本、數(shù)字、公式和指向多個(gè)工作表的超鏈接。

具體功能介紹請(qǐng)?zhí)D(zhuǎn)github的庫(kù)地址連接:

1、項(xiàng)目地址

2、使用手冊(cè)地址

因?yàn)轫?xiàng)目是用swift開(kāi)發(fā),所以這里主要簡(jiǎn)單介紹下swift項(xiàng)目下如何使用:

數(shù)據(jù)格式建議采用Array的方式存儲(chǔ)每一組的數(shù)據(jù),方便數(shù)據(jù)寫(xiě)入處理

文件名稱(chēng)根據(jù)實(shí)際需求定義,路徑只需要文件夾路徑拼接文件名即可

創(chuàng)建表格過(guò)程如下:

1、生成一張表格

2、創(chuàng)建一個(gè)sheet

3、設(shè)置表格的樣式、格式(包含文字格式、文字顏色、對(duì)齊方式等)

樣式設(shè)置可參考使用手冊(cè)里的說(shuō)明,這里大概列幾個(gè)供參考:

4、關(guān)閉表格創(chuàng)建

如果格式不對(duì)或者樣式不喜歡,可以結(jié)合實(shí)際重新設(shè)置

QuickLook的框架詳解請(qǐng)查看:

可以通過(guò)QuickLook打開(kāi)EXCEL文檔,同時(shí)QuickLook還集成一系列功能(保存文件、傳送文件等),導(dǎo)出文檔功能可用這個(gè)框架實(shí)現(xiàn),具體如何導(dǎo)出請(qǐng)看框架詳解說(shuō)明即可

可以通過(guò)設(shè)置樣式創(chuàng)建各種復(fù)雜的EXCEL表格,文檔說(shuō)明也非常詳細(xì),用戶(hù)很容易就可以利用該框架創(chuàng)建滿(mǎn)足各種需求的EXCEL表格

沒(méi)有EXCEL讀取功能,因此讀取功能只能另外處理

至此,一個(gè)簡(jiǎn)單的EXCEL創(chuàng)建過(guò)程已經(jīng)完成。libxlsxwriter功能十分強(qiáng)大, 如果要生成一個(gè)復(fù)雜的表格,請(qǐng)仔細(xì)研讀格式設(shè)置說(shuō)明文檔

CoreXLSX是一個(gè)庫(kù),它專(zhuān)注于表示基于XML的XLSX電子表格格式的底層結(jié)構(gòu)。它允許您打開(kāi)擴(kuò)展名為.xlsx的電子表格存檔,并將其內(nèi)部結(jié)構(gòu)映射到直接用Swift表示的模型類(lèi)型中。

需要注意的是,此庫(kù)僅為.xlsx格式提供只讀支持。由于舊的legacy.xls電子表格格式具有完全不同的內(nèi)部結(jié)構(gòu),如果您需要使用該類(lèi)型的文件,請(qǐng)參考其他庫(kù)。

如果您的.xlsx文件使用ECMA-376敏捷加密(這似乎是最流行的一種),請(qǐng)查看CryptoOffice庫(kù)。

項(xiàng)目地址:

可通過(guò)系統(tǒng)提供的API打開(kāi),如下:

可通過(guò)UIDocumentPickerDelegate回調(diào)方法拿到對(duì)應(yīng)的文件路徑, 這里需要注意一個(gè)細(xì)節(jié) ,如下圖

讀取文件時(shí)需要授權(quán),不然有的文件無(wú)法讀取,會(huì)報(bào)沒(méi)有權(quán)限的錯(cuò)誤提示,讀取數(shù)據(jù)完成后,需要關(guān)閉授權(quán)

采用CoreXLSX相關(guān)API去讀取數(shù)據(jù),具體可參考項(xiàng)目文檔說(shuō)明,因?yàn)轫?xiàng)目在讀取數(shù)據(jù)時(shí)需要校驗(yàn)文檔內(nèi)容是否合法,不合法需要提示用戶(hù)重新選擇其他文件,校驗(yàn)規(guī)則可根據(jù)實(shí)際需求去做,以下列舉個(gè)人項(xiàng)目的簡(jiǎn)單校驗(yàn),如下圖

最終rows得到的就是每組的數(shù)據(jù),可通過(guò)遍歷獲取對(duì)應(yīng)的數(shù)據(jù),如有疑問(wèn),請(qǐng)參考官方文檔或者官方DEMO

參考文獻(xiàn):

libxlsxwriter開(kāi)源庫(kù):

CoreXLSX開(kāi)源庫(kù):

XlsxReaderWriterSwift開(kāi)源庫(kù):

謝謝各位的無(wú)私奉獻(xiàn)。。。

iOS開(kāi)發(fā)打開(kāi)word、excel、ppt、txt、pdf文檔(可在線(xiàn)瀏覽)

非常感謝大家對(duì)我的關(guān)注!?。?!

打開(kāi)文件的方法:

1.獲取文件的沙盒路徑path

2.將path路徑轉(zhuǎn)化URL

3.用webView顯示出來(lái)

iOS開(kāi)發(fā)生成txt文件

一開(kāi)始我用的方法一寫(xiě),但是后來(lái)發(fā)現(xiàn)在高系統(tǒng)上報(bào)錯(cuò)(大概報(bào)錯(cuò)內(nèi)容:NSCocoaErrorDomain:257)。

后來(lái)解決了,做個(gè)記錄。

1、在低于iOS13的系統(tǒng)中。用創(chuàng)建文件夾的形式可以如下:

+ (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上,不能這樣寫(xiě)。系統(tǒng)會(huì)默認(rèn)創(chuàng)建以為***.txt的文件夾,在寫(xiě)入的時(shí)候就出問(wèn)題了。

會(huì)報(bào)錯(cuò):NSCocoaErrorDomain:257 就是

NSFileReadNoPermissionError = 257,/ /讀取錯(cuò)誤(權(quán)限問(wèn)題)

所以可以這樣寫(xiě):

+ (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(@"當(dāng)前文件大?。?llu",[self fileSizeWithPath:fieldPath]);

NSFileManager *manager = [NSFileManager defaultManager];

if(![managerfileExistsAtPath:fieldPath]){

? ? NSError*error;

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

? ? if(error) {

? ? ? ? NSLog(@"寫(xiě)入失敗:%@\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(@"寫(xiě)入失敗:%@\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關(guān)于文件的讀取

ios關(guān)于文件的讀取有四種方法:

#import foundation foundation.h=""

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

{

@autoreleasepool

{

//第一種方法: NSFileManager實(shí)例方法讀取數(shù)據(jù)

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類(lèi)方法讀取數(shù)據(jù)

data = [NSData dataWithContentsOfFile:thepath];

NSLog(@"NSData類(lèi)方法讀取的內(nèi)容是:%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);

//第三種方法: NSString類(lèi)方法讀取內(nèi)容

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

NSLog(@"NSString類(lèi)方法讀取的內(nèi)容是:\n%@",content);

//第四種方法: NSFileHandle實(shí)例方法讀取內(nèi)容

NSFileHandle* fh = [NSFileHandle fileHandleForReadingAtPath:thepath];

data = [fh readDataToEndOfFile];

NSLog(@"NSFileHandle實(shí)例讀取的內(nèi)容是:\n%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);

}

return 0;

}

/foundation

當(dāng)前題目:ios開(kāi)發(fā)讀取文件,ios讀取app文件
文章網(wǎng)址:http://aaarwkj.com/article32/dssphpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站建設(shè)靜態(tài)網(wǎng)站、企業(yè)網(wǎng)站制作網(wǎng)站內(nèi)鏈、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
91一区二区亚洲嫩草| 国产精品午夜视频免费观看| 精品视频在线观看传媒| 91国内偷拍富婆国内精品对白| 伊人99热这里只有精品| 国产一区二区精品小视频| 国产精品毛片视频一区二区| 一区二区三区蜜桃av| 九九九热视频这里只有精品| 亚洲av第一区国产精品| 深夜福利在线观看97| 国产免费一级av剧情| 人妻的秘密一区二区三区| 日本黄色美女日本黄色| 夫妻性生活视频在线免费看| 久久成人综合亚洲精品欧美| av在线免费观看青青草原| 在线免费观看日本91| 国产成人+亚洲欧洲综合| 在线激情av中文字幕| 精品国产av一区二区麻豆| 日本韩国欧美成人精品| 国产精品_国产精品_k频道 | 久久99精品人妻一区二区三区 | 中文字幕四虎在线观看| 97久久成人国产精品免费| 日韩高清中文字幕在线| 国产精品日本在线观看| 青草草草草草在线观看| 97精品久久九九中文字幕| 一级片一区二区中文字幕| 丰满少妇被激烈的插进去| 九色视频在线观看91| 99久久夜国产精品| 少妇高潮毛片免费看高潮| 亚洲欧美国产另类综合| 91麻豆精品国产综合久久久| 亚洲无人区码一码二码三码| 日韩视频看看色网站| 朋友的尤物人妻中文字幕| 人妻精品久久一区二区三区|