zoukankan      html  css  js  c++  java
  • swift 数据读写

    //

    //  DocumentActionViewController.swift

    //  UIControlDemo

    //

    //  Created by  on 14/12/10.

    //  Copyright (c) 2014 马大哈. All rights reserved.

    //

     

    import UIKit

     

    class DocumentActionViewController: BaseViewController {

        override func viewDidLoad() {

            super.viewDidLoad()

            

            let leftBarButton:UIBarButtonItem = UIBarButtonItem(title: "移除data.plist", style: UIBarButtonItemStyle.Plain, target: self, action: "removePlistFile")

            self.navigationItem.rightBarButtonItem = leftBarButton;

    //        println(" 程序document路径 : (applicationDocumentPath())")

     

            // document中是否存在 ImageOfGoods/data.plist 文件

            if applicationFileExistAtPath(false, fileName: "data.plist", directory: "ImageOfGoods"){

                var data = applicationReadDataToFileAtPath(dataTypeArray: true,fileName: "data.plist", directory: "ImageOfGoods") as NSArray

                println(" 获取file数据 : (data)") 

            }else{

                var writeData = ["1","2","3","4","5"]

                // 创建  ImageOfGoods  文件夹

                applicationCreatFileAtPath(fileTypeDirectory: true, fileName: "ImageOfGoods", directory: "")

                // 创建  data.plist  文件

                applicationCreatFileAtPath(fileTypeDirectory: false, fileName: "data.plist", directory: "ImageOfGoods")

                // 插入  数组

                applicationWriteDataToFileAtPath(dataTypeArray: true , content: writeData, fileName: "data.plist", directory: "ImageOfGoods")

            }

        }

        func removePlistFile() {

            applicationRemoveFileAtPath("data.plist", directory: "ImageOfGoods")        

        }

        

        // 获取程序的document

        func applicationDocumentPath() ->String{

            let application = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)

            let documentPathString = application[0] as String

            return documentPathString

        }

        

        

        // 拼接文件路径

        func applicationFilePath(fileName: String ,directory: String) ->String {

            var docuPath = applicationDocumentPath()

            if directory.isEmpty {

                return docuPath.stringByAppendingPathComponent(fileName)

            }else{

                return docuPath.stringByAppendingPathComponent("(directory)/(fileName)")

            }

        }

     

        // 指定路径下是否存在 特定文件文件夹

        func applicationFileExistAtPath(fileTypeDirectory: Bool ,fileName: String ,directory: String) ->Bool {

            var filePath = applicationFilePath(fileName, directory: directory)

            if fileTypeDirectory {//普通文件(图片、plisttxt等等)

                return NSFileManager.defaultManager().fileExistsAtPath(filePath)

            }else{//文件夹

                //UnsafeMutablePointer<ObjCBool> 不能再直接使用  Bool  类型

                var isDir : ObjCBool = false

                return NSFileManager.defaultManager().fileExistsAtPath(filePath, isDirectory: &isDir)

            }

        }

        

        // 创建文件 文件夹在指定路径下

        func applicationCreatFileAtPath(#fileTypeDirectory: Bool ,fileName: String ,directory: String) ->Bool{

            var filePath = applicationFilePath(fileName, directory: directory)

            if fileTypeDirectory {//普通文件(图片、plisttxt等等)

                return NSFileManager.defaultManager().createDirectoryAtPath(filePath, withIntermediateDirectories: true, attributes: nil, error: nil)

            }else{//文件夹

                return NSFileManager.defaultManager().createFileAtPath(filePath, contents: nil, attributes: nil)

            }

        }

        

        // 移除指定路径下地文件中

        func applicationRemoveFileAtPath(fileName: String ,directory: String) -> Bool{

            var filePath = applicationFilePath(fileName, directory: directory)

            return NSFileManager.defaultManager().removeItemAtPath(filePath, error: nil)

        }

      

        // 向指定路径下地文件中写入数据

        func applicationWriteDataToFileAtPath(#dataTypeArray: Bool ,content:AnyObject ,fileName: String ,directory: String) -> Bool{

            var filePath = applicationFilePath(fileName, directory: directory)

            if dataTypeArray {

                return (content as NSArray).writeToFile(filePath, atomically: true)

            }else{

                return (content as NSDictionary).writeToFile(filePath, atomically: true)

            }

        }

     

        // 读取特定文件中数据(如:plisttext等)

        func applicationReadDataToFileAtPath(#dataTypeArray: Bool ,fileName: String ,directory: String) -> AnyObject{

            var filePath = applicationFilePath(fileName, directory: directory)

            if dataTypeArray {

                return NSArray(contentsOfFile: filePath)!

            }else{

                return NSDictionary(contentsOfFile: filePath)!

            }

         

        }

     

        // 读取文件夹中所有子文件(如:photo文件夹中所有image

        func applicationReadFileOfDirectoryAtPath(fileName: String ,directory: String) -> AnyObject{

            var filePath = applicationFilePath(fileName, directory: directory)

            var content = NSFileManager.defaultManager().contentsOfDirectoryAtPath(filePath, error: nil)

            return content!

        }

     

        override func didReceiveMemoryWarning() {

            super.didReceiveMemoryWarning()

            // Dispose of any resources that can be recreated.

        }

     

    }

     

     

     

     

  • 相关阅读:
    centos7.7环境下编译安装tengine2.3.2版本
    centos6.9安装python3.6.9独立的virtualenv环境,并且能正确引入ssl
    django在centos生产环境的部署
    django入门8之xadmin引入富文本和excel插件
    jenkins服务器使用python脚本rabbitmqadmin和shell对目标服务器进行管理
    django入门7之django template和xadmin常用技巧
    mysql5.7同步复制报错1060故障处理
    Centos7.6使用yum安装PHP7.2
    django中安全sql注入等
    django入门6引入验证码插件 django-simple-captcha
  • 原文地址:https://www.cnblogs.com/madaha/p/4155321.html
Copyright © 2011-2022 走看看