Swift调用OC之文件操作-NSFileHandle

来源:互联网 发布:苹果的ar软件 编辑:程序博客网 时间:2024/05/05 10:53

//***************************************************

//

//    >>>>>>>Swift调用OC之文件操作-NSFileHandle<<<<<<<

//

//对文件内容数据的操作

// FileHandle-文件句柄有个活动指针,指向当前文件内数据的偏移量

// **** 本节内容 ****

//

// 1.文件内容定位

//  -- seekToEndOfFile :句柄指向文件末尾,返回移动后指针的偏移量

//  -- seekToFileOffset(<#offset:UInt64#>) :句柄指向特定的偏移量位置

//

// 2.文件数据读取

//  -- readDataToEndOfFile :从当前指针位置一直读到末尾

//  -- readDataOfLength(<#length: Int#>):从当前指针位置读取固定长度的数据

//

// 3.文件数据写入

//

//***************************************************

 

import Foundation

 

//------先定义一个文件的路径 ---------//

let manage =NSFileManager.defaultManager()

let documentUrl =manage.URLsForDirectory(NSSearchPathDirectory.DocumentDirectory,inDomains:NSSearchPathDomainMask.UserDomainMask)

let Url =documentUrl[0]as NSURL

let fileUrl =Url.URLByAppendingPathComponent("test.txt"//定义文件路径

var error :NSErrorPointer =nil

 

ifmanage.fileExistsAtPath(fileUrl.path!) == true {

 

 

//------ 1.文件内容定位 ---------//

varreadHandler :NSFileHandle!  =NSFileHandle(forReadingFromURL:fileUrl, error:nil)//该方法获取句柄成功时,会将指针指向文件开头

readHandler.seekToFileOffset(0)               //指针定位到文件头

varnsData = readHandler.readDataToEndOfFile()//读取从指针当前位置到末尾的所有数据

var strData :NSString! =NSString(data: nsData,encoding:NSUTF8StringEncoding)

println("写入前文件内容=\(strData)")

 

 

//------ 2.文件数据写入 ---------//

let string ="+将这些数据写入到文件末尾"

let appendData :NSData! = string.dataUsingEncoding(NSUTF8StringEncoding,allowLossyConversion:true)

letwriteHandler :NSFileHandle! =NSFileHandle(forWritingToURL:fileUrl, error:nil//该方法获取句柄成功时,会将指针指向文件开头

writeHandler.seekToEndOfFile()               //指针定位到文件末尾,即从末尾开始写入

writeHandler.writeData(appendData)

 

readHandler?.seekToFileOffset(0)

nsData= readHandler!.readDataToEndOfFile()

strData=NSString(data: nsData, encoding:NSUTF8StringEncoding)

println("写入后文件内容=\(strData)")

    

 

}


0 0