讀寫txt/rtf文件

目錄:
1、txt文件寫入
2、txt文件讀取
3、rtf文件讀取
4、NSString轉(zhuǎn)換成其他類型數(shù)據(jù)方法

1、txt文件寫入

//獲取文件路徑
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *newPath= [documentsDirectory stringByAppendingPathComponent:@"newFile.txt"];
    
    //要寫入txt文件的內(nèi)容
    NSString *fileContent = @"Write to file...";
//寫入文件方法1.使用文件管理的方式寫入內(nèi)容
    NSFileManager *fileManager = [[NSFileManager alloc]init];
    NSData *fileData = [fileContent dataUsingEncoding:NSUTF8StringEncoding];
    [fileManager createFileAtPath:newPath contents:fileData attributes:nil];
//寫入文件方法2.直接寫入字符串內(nèi)容
[arr writeToFile:pathStr atomically:YES];
    NSError *error = nil;//數(shù)組寫入方法
    
    [fileContent writeToFile:newPath atomically:YES encoding:NSUTF8StringEncoding error:&error];
    
    if (!error)
    {
        NSLog(@"字符串寫入成功!");
    }
    else
    {
        NSLog(@"字符串寫入失敗,原因是:%@",[error localizedDescription]);
    }

2、txt文件讀取

//讀取txt文件內(nèi)容
    NSString *str = [NSString stringWithContentsOfFile:newPath encoding:NSUTF8StringEncoding error:&error];

    if (!error)
    {
        NSLog(@"txt內(nèi)容為:%@",str);
    }
    else
    {
        NSLog(@"文件讀取失敗,原因是:%@",[error localizedDescription]);
    }

3、rtf文件讀取

rtf文件不能像txt文件一樣直接讀取文件內(nèi)容,
在此我的方法是把rtf內(nèi)容轉(zhuǎn)換成txt之后再讀?。?/p>

轉(zhuǎn)換方式1、如有虛擬機(jī)裝有Windows系統(tǒng)則直接創(chuàng)建txt文件,復(fù)制內(nèi)容即可。但是此時需要注意,讀取此txt文件時會報錯:The file “NewData.txt” couldn’t be opened using text encoding Unicode (UTF-8).需要特殊處理如下:

    if (error)  //解析錯誤時打印錯誤信息
    {
        //error == The file “NewData.txt” couldn’t be opened using text encoding Unicode (UTF-8).
        NSLog(@"error == %@",[error localizedDescription]);
        
        if (!str)   //解析錯誤時按GBK編碼再解碼一次
        {
            str = [NSString stringWithContentsOfFile:newPath encoding:0x80000632 error:nil];
        }
    }

轉(zhuǎn)換方式2、沒有Windows虛擬機(jī)時,需要自己用代碼創(chuàng)建一個txt文件(其他方式不會),方法如前所述,創(chuàng)建txt文檔后復(fù)制rtf文件內(nèi)容即可,此時不用做特殊處理即可讀取文件內(nèi)容。

至于直接改文件名字的方式會出現(xiàn)亂碼的情況

4、NSString轉(zhuǎn)換成其他類型數(shù)據(jù)方法

在獲取到文件內(nèi)容的字符串之后,有時需要把字符串格式轉(zhuǎn)換成想要的格式,可以通過NSData過渡一下,進(jìn)行轉(zhuǎn)換。

//NSString轉(zhuǎn)換其他數(shù)據(jù)類型  //首先轉(zhuǎn)換成NSData類型
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    
    //NSData類型轉(zhuǎn)換成字典 //數(shù)組、字典、字符串等接收即可
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,662評論 30 472
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,711評論 19 139
  • 一、iOS中的沙盒機(jī)制 iOS應(yīng)用程序只能對自己創(chuàng)建的文件系統(tǒng)讀取文件,這個獨立、封閉、安全的空間,叫做沙盒。它一...
    1d5cb7cff98d閱讀 1,873評論 0 0
  • iOS開發(fā)-文件管理(一) 一、iOS中的沙盒機(jī)制 iOS應(yīng)用程序只能對自己創(chuàng)建的文件系統(tǒng)讀取文件,這個獨立、封閉...
    MacShare閱讀 1,875評論 0 6
  • 我就像是黑夜里那顆不閃光顆星 就像是深海的一粒沙子一條魚 就像是漂浮在空城的氧氣 就像是袋鼠寶寶需要媽媽爸爸 就像...
    LInA_SCSC閱讀 267評論 0 1

友情鏈接更多精彩內(nèi)容