加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift中的文件操作

发布时间:2020-12-14 01:42:37 所属栏目:百科 来源:网络整理
导读:自从学习了iOS的新语言就感觉一个更加有趣的世界开启了,它的横空出世必定会带来一番腥风血雨。这次就谈谈Swift中关于文件的操作,记忆中学习Swift差不多一个月就可以上手些项目了,比较深的体会是它面向对象的语言特征更加刻骨。有OC基础的童靴学习Swift是

自从学习了iOS的新语言就感觉一个更加有趣的世界开启了,它的横空出世必定会带来一番腥风血雨。这次就谈谈Swift中关于文件的操作,记忆中学习Swift差不多一个月就可以上手些项目了,比较深的体会是它面向对象的语言特征更加刻骨。有OC基础的童靴学习Swift是不在话下的,不过它还是有很多强大的东西是你必须花时间去掌握的。这次带来自己封装的一个文件操作的类引擎:

关于文件判无和路径的实例方法:

//   在Document路径下判断,什么这里返回值是可选的字符串值呢,这里可选是因为返回值可能为nil,其他返回值为可选类型的同样是这个规则。
    func localDocumentsPath(fileName:String) ->String?{
        return createNeeded(fileName)
    }
    
    //    文件不存在则创建为
    func createNeeded(fileName:String) ->String?{
        let fileManage = NSFileManager.defaultManager()
        let filePath = returnDocumentsPathWithFileName(fileName)
        if !fileManage.fileExistsAtPath(filePath!){
            let bundlePath = NSBundle.mainBundle().resourcePath
            let defaultFilePath = bundlePath! + "/(NoteFile)"
            do{
                try fileManage.copyItemAtPath(defaultFilePath,toPath: filePath!)
            }catch{
                print("错误写入文件!")
            }
        }
        
        return filePath
    }
    //  文件Document路径
    func returnDocumentsPathWithFileName(fileName:String) ->String?{
        let documentDir = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomainMask.UserDomainMask,true).last
        let documentPath = "(documentDir!)/(fileName)"
        return documentPath
    }

两个静态方法分别进行文件的读和写,写的时候在静态方法中调用实例方法会发现调不了,什么鬼。。。 然后你会思考怎么调,其实在静态方法里可以用很多方式来调用实例方法,这里给出一种方式:

    class func readCurrentFile(fileName:String) -> String?{
        let currentClassObject = FileManagerEngine()
        let filePath = currentClassObject.localDocumentsPath(localDataFile)
        let fileManage = NSFileManager.defaultManager()
        var content: String?
        if fileManage.fileExistsAtPath(filePath!){
            let tmpData = NSData.init(contentsOfFile: filePath!)
            content = String.init(data: tmpData!,encoding: NSUTF8StringEncoding)
        }
        return content
    }
    
    
    class func writeNoteToFileWithData(stringData:String) {
        let currentClassObject = FileManagerEngine()
       let filePath = currentClassObject.localDocumentsPath(localDataFile)
        let writeData = NSMutableData.init(contentsOfFile: filePath!)
        writeData!.appendData(stringData.dataUsingEncoding(NSUTF8StringEncoding)!)
        writeData!.writeToFile(filePath!,atomically: true)
    }


可以看出Swift也不怎么难,重点要掌握其中的核心思想:面向对象,简洁。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读