[Xcode 实际操作]七、文件与数据-(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 }