1. 程式人生 > >[Xcode10 實際操作]七、檔案與資料-(3)建立文字檔案、屬性列表檔案、圖片檔案

[Xcode10 實際操作]七、檔案與資料-(3)建立文字檔案、屬性列表檔案、圖片檔案

本文將演示如何建立各種型別的檔案。

在專案導航區,開啟檢視控制器的程式碼檔案【ViewController.swift】

 1 import UIKit
 2 
 3 class ViewController: UIViewController {
 4 
 5     override func viewDidLoad() {
 6         super.viewDidLoad()
 7         // Do any additional setup after loading the view, typically from a nib.
 8         //
呼叫方法,用來建立文字檔案 9 self.writeText() 10 //呼叫個方法,用來將陣列物件,儲存為一個屬性列表檔案 11 self.writeArray() 12 //呼叫個方法,用來將字典物件,儲存為一個屬性列表檔案 13 self.writeDictionary() 14 //呼叫個方法,用來儲存圖片檔案 15 self.writeImage() 16 } 17 18 //建立一個方法,用來建立文字檔案 19 func writeText()
20 { 21 //建立一個字串物件,該字串物件表示文件目錄下的一個文字檔案 22 let filePath:String = NSHomeDirectory() + "/Documents/swift.txt" 23 //再建立一個字串物件,用來儲存將要寫入到文字的內容 24 let info = "i'm the author ,my name is Strengthten" 25 26 //首先建立一個異常捕捉語句,用來建立一個新的資料夾 27 do 28 {
29 //使用try語句,將文字內容,寫入到指定位置的文字檔案, 30 //並使用指定的編碼方式 31 try info.write(toFile: filePath, atomically: true, encoding: .utf8) 32 //在控制檯列印輸出日誌,提示文字檔案建立成功 33 print("Success to write a file.\n") 34 } 35 catch 36 { 37 //在控制檯列印輸出日誌,提示文字檔案建立失敗 38 print("Error to write a file.\n") 39 } 40 } 41 42 //建立一個方法,用來將陣列物件,儲存為一個屬性列表檔案 43 func writeArray() 44 { 45 //初始化一個數組物件,該陣列擁有三個字串物件。 46 //陣列儲存在相同型別的數值有序表內 47 let fruits = NSArray(objects: "Apple", "Banana", "Orange") 48 //建立一個字串物件, 49 //該字串物件表示文件目錄下的一個屬性列表檔案 50 let fruitsPath:String = NSHomeDirectory() + "/Documents/fruitsPath.plist" 51 //將陣列物件,儲存在指定位置的屬性列表檔案中 52 fruits.write(toFile: fruitsPath, atomically: true) 53 //在控制檯列印輸出日誌,提示屬性列表檔案建立成功 54 print("Success to write an array.\n") 55 } 56 57 //建立一個方法,用來將字典物件,儲存為一個屬性列表檔案 58 func writeDictionary() 59 { 60 //建立一個字典物件,字典物件擁有字串型別的鍵和值。 61 //字典物件儲存相同型別值的無序集合。 62 //可以通過一個唯一識別符號(也成為金鑰)進行訪問和查閱 63 var dictionary : Dictionary<String, String> 64 //給字典物件新增兩個鍵值對 65 dictionary = ["Software":"Xcode","Language":"Swift"] 66 //將Swift語音中的字典物件,轉換為舊型別的字典物件 67 let products = dictionary as NSDictionary 68 //建立一個字串物件,該字串物件表示文件目錄下的一個屬性列表檔案 69 let productsPath:String = NSHomeDirectory() + "/Documents/products.plist" 70 //將字典物件,儲存在指定位置的屬性列表檔案中 71 products.write(toFile: productsPath, atomically: true) 72 //在控制檯列印輸出日誌,提示屬性列表檔案建立成功 73 print("Success to write a dictionary.\n") 74 } 75 76 //建立一個方法,用來儲存圖片檔案 77 func writeImage() 78 { 79 //建立一個字串物件, 80 //該字串物件表示文件目錄下的一個圖片檔案 81 let imagePath:String = NSHomeDirectory() + "/Documents/Pic.png" 82 //在實際工作中,經常需要將來自伺服器的圖片,快取到本地。 83 //這裡選擇載入一張資原始檔夾中的圖片。作為示例圖片 84 let image = UIImage(named: "Pic1") 85 //將圖片內容進行壓縮,並轉換為二進位制內容 86 let imageData:Data = image!.pngData()! 87 //然後將二進位制內容,儲存到指定位置的檔案中 88 try? imageData.write(to: URL(fileURLWithPath: imagePath), options: [.atomic]) 89 //在控制檯列印輸出日誌,提示圖片檔案建立成功 90 print("Success to write an image.\n") 91 } 92 93 override func didReceiveMemoryWarning() { 94 super.didReceiveMemoryWarning() 95 // Dispose of any resources that can be recreated. 96 } 97 }