• 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.

        }

     

    }

     

     

     

     

  • 相关阅读:
    杭电OJ-1031_Design T-Shirt
    杭电OJ-1036_Average is not Fast Enough!
    2019杭电多校一 L. Sequence (NTT)
    Binary Table CodeForces
    2019牛客多校一 H. XOR (线性基)
    Jzzhu and Numbers CodeForces
    Geometers Anonymous Club CodeForces
    [笔记] 扩展卢卡斯
    Luogu P2183 [国家集训队]礼物 扩展卢卡斯+组合数
    Luogu P4901 排队 fib数列+树状数组+倍增
  • 原文地址:https://www.cnblogs.com/madaha/p/4155321.html
Copyright © 2020-2023  润新知