将新字符串附加到 swift 中的 txt 文件 2
Append new string to txt file in swift 2
我曾经在 java 中编写代码,但现在我想使用 swift 将我的应用程序移动到 iOS 2。
所以我想要一种方法将新行中的文本附加到应用程序文档中的现有 txt 文件。
我搜索并尝试了很多方法,但都覆盖到新的 txt 文件
在java中我使用了这个方法
PrintWriter out=null;
try {
out=new PrintWriter(new FileWriter("file.txt",true));
out.println("some txt"}
out.close();
} catch (IOException e) {
e.printStackTrace();
}
您可以使用以下方法将字符串附加到文件
func writeToFile(content: String, fileName: String) {
let contentToAppend = content+"\n"
let filePath = NSHomeDirectory() + "/Documents/" + fileName
//Check if file exists
if let fileHandle = NSFileHandle(forWritingAtPath: filePath) {
//Append to file
fileHandle.seekToEndOfFile()
fileHandle.writeData(contentToAppend.dataUsingEncoding(NSUTF8StringEncoding)!)
}
else {
//Create new file
do {
try contentToAppend.writeToFile(filePath, atomically: true, encoding: NSUTF8StringEncoding)
} catch {
print("Error creating \(filePath)")
}
}
}
我认为你必须使用 NSFileHandle:
let dir:NSURL = NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.CachesDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask).last as NSURL
let fileurl = dir.URLByAppendingPathComponent("file.txt")
let string = "\(NSDate())\n"
let data = string.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
if NSFileManager.defaultManager().fileExistsAtPath(fileurl.path!) {
var error:NSError?
if let fileHandle = NSFileHandle(forWritingToURL: fileurl, error: &error) {
fileHandle.seekToEndOfFile()
fileHandle.writeData(data)
fileHandle.closeFile()
}
else {
println("Can't open fileHandle \(error)")
}
}
else {
var error:NSError?
if !data.writeToURL(fileurl, options: .DataWritingAtomic, error: &error) {
println("Can't write \(error)")
}
}
我曾经在 java 中编写代码,但现在我想使用 swift 将我的应用程序移动到 iOS 2。 所以我想要一种方法将新行中的文本附加到应用程序文档中的现有 txt 文件。
我搜索并尝试了很多方法,但都覆盖到新的 txt 文件
在java中我使用了这个方法
PrintWriter out=null;
try {
out=new PrintWriter(new FileWriter("file.txt",true));
out.println("some txt"}
out.close();
} catch (IOException e) {
e.printStackTrace();
}
您可以使用以下方法将字符串附加到文件
func writeToFile(content: String, fileName: String) {
let contentToAppend = content+"\n"
let filePath = NSHomeDirectory() + "/Documents/" + fileName
//Check if file exists
if let fileHandle = NSFileHandle(forWritingAtPath: filePath) {
//Append to file
fileHandle.seekToEndOfFile()
fileHandle.writeData(contentToAppend.dataUsingEncoding(NSUTF8StringEncoding)!)
}
else {
//Create new file
do {
try contentToAppend.writeToFile(filePath, atomically: true, encoding: NSUTF8StringEncoding)
} catch {
print("Error creating \(filePath)")
}
}
}
我认为你必须使用 NSFileHandle:
let dir:NSURL = NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.CachesDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask).last as NSURL
let fileurl = dir.URLByAppendingPathComponent("file.txt")
let string = "\(NSDate())\n"
let data = string.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
if NSFileManager.defaultManager().fileExistsAtPath(fileurl.path!) {
var error:NSError?
if let fileHandle = NSFileHandle(forWritingToURL: fileurl, error: &error) {
fileHandle.seekToEndOfFile()
fileHandle.writeData(data)
fileHandle.closeFile()
}
else {
println("Can't open fileHandle \(error)")
}
}
else {
var error:NSError?
if !data.writeToURL(fileurl, options: .DataWritingAtomic, error: &error) {
println("Can't write \(error)")
}
}