第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在Swift中將文本或數(shù)據(jù)添加到文本文件

在Swift中將文本或數(shù)據(jù)添加到文本文件

叮當(dāng)貓咪 2019-12-03 14:22:05
我需要將數(shù)據(jù)(字符串)附加到文本文件的末尾。一種顯而易見的方法是從磁盤讀取文件,并將字符串附加到文件末尾再寫回,但這種方法效率不高,尤其是在處理大型文件并經(jīng)常處理的情況下。因此,問題是“如何在不讀取文件并將整個(gè)內(nèi)容寫回的情況下,將字符串附加到文本文件的末尾”?到目前為止,我有:    let dir:NSURL = NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.CachesDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask).last as NSURL    let fileurl =  dir.URLByAppendingPathComponent("log.txt")    var err:NSError?    // until we find a way to append stuff to files    if let current_content_of_file = NSString(contentsOfURL: fileurl, encoding: NSUTF8StringEncoding, error: &err) {        "\(current_content_of_file)\n\(NSDate()) -> \(object)".writeToURL(fileurl, atomically: true, encoding: NSUTF8StringEncoding, error: &err)    }else {        "\(NSDate()) -> \(object)".writeToURL(fileurl, atomically: true, encoding: NSUTF8StringEncoding, error: &err)    }    if err != nil{        println("CANNOT LOG: \(err)")    }
查看完整描述

3 回答

?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊

這是Swift 2的版本,使用String和NSData的擴(kuò)展方法。


//: Playground - noun: a place where people can play


import UIKit


extension String {

    func appendLineToURL(fileURL: NSURL) throws {

        try self.stringByAppendingString("\n").appendToURL(fileURL)

    }


    func appendToURL(fileURL: NSURL) throws {

        let data = self.dataUsingEncoding(NSUTF8StringEncoding)!

        try data.appendToURL(fileURL)

    }

}


extension NSData {

    func appendToURL(fileURL: NSURL) throws {

        if let fileHandle = try? NSFileHandle(forWritingToURL: fileURL) {

            defer {

                fileHandle.closeFile()

            }

            fileHandle.seekToEndOfFile()

            fileHandle.writeData(self)

        }

        else {

            try writeToURL(fileURL, options: .DataWritingAtomic)

        }

    }

}


// Test

do {

    let url = NSURL(fileURLWithPath: "test.log")

    try "Test \(NSDate())".appendLineToURL(url)

    let result = try String(contentsOfURL: url)

}

catch {

    print("Could not write to file")

}


查看完整回答
反對(duì) 回復(fù) 2019-12-03
  • 3 回答
  • 0 關(guān)注
  • 1369 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)