Swift调用OC之文件操作-NSFileHandle

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

//

//     >>>>>>>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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值