Swift 将字符串添加到文件顶部
我想在文件的开头和结尾添加一个字符串 我在末尾加了一个字符串,就像这样Swift 将字符串添加到文件顶部,swift,append,Swift,Append,我想在文件的开头和结尾添加一个字符串 我在末尾加了一个字符串,就像这样 func writeToFile(content: String, fileName: String) { let contentToAppend = content+"\n" let filePath = NSHomeDirectory() + "/Documents/" + fileName //Check if file exists if let fileHandle = File
func writeToFile(content: String, fileName: String) {
let contentToAppend = content+"\n"
let filePath = NSHomeDirectory() + "/Documents/" + fileName
//Check if file exists
if let fileHandle = FileHandle(forWritingAtPath: filePath) {
//Append to file
fileHandle.seekToEndOfFile()
fileHandle.write(contentToAppend.data(using: String.Encoding.utf8)!)
}
else {
//Create new file
do {
try contentToAppend.write(toFile: filePath, atomically: true, encoding: String.Encoding.utf8)
} catch {
print("Error creating \(filePath)")
}
}
}
我尝试了
fileHandle.seek(toFileOffset:0)
,但它从文件中删除了我的第一行。我想在文件的开头添加两行文本。任何帮助都将不胜感激 不能使用文件句柄将数据插入现有文件。它只支持覆盖文件的全部或部分内容,或在文件末尾追加内容
您需要创建一个新文件,首先在开头写入所需的字符串,然后写入现有文件的内容,然后在结尾写入所需的字符串
这是一个扩展名,可用于将现有文件的内容添加到文件句柄。假设文件句柄已设置为写入
extension FileManager {
func appendContentsOfFile(at fileURL: URL, to outputHandle: FileHandle) throws {
let inputHandle = try FileHandle(forReadingFrom: fileURL)
while true {
let data = inputHandle.readData(ofLength: 4096)
if data.isEmpty {
break
} else {
outputHandle.write(data)
}
}
inputHandle.closeFile()
}
}
使用此功能,您的问题的解决方案可通过以下步骤实现:
不能使用文件句柄将数据插入现有文件。它只支持覆盖文件的全部或部分内容,或在文件末尾追加内容 您需要创建一个新文件,首先在开头写入所需的字符串,然后写入现有文件的内容,然后在结尾写入所需的字符串 这是一个扩展名,可用于将现有文件的内容添加到文件句柄。假设文件句柄已设置为写入
extension FileManager {
func appendContentsOfFile(at fileURL: URL, to outputHandle: FileHandle) throws {
let inputHandle = try FileHandle(forReadingFrom: fileURL)
while true {
let data = inputHandle.readData(ofLength: 4096)
if data.isEmpty {
break
} else {
outputHandle.write(data)
}
}
inputHandle.closeFile()
}
}
使用此功能,您的问题的解决方案可通过以下步骤实现:
谢谢你的回复。我用开头的内容创建了file1,然后在原始文件的末尾添加了字符串。现在我想在file1的末尾添加原始文件(开始文本文件)。如果我不清楚,请告诉我。如果原始文件很小,请加载到
Data
实例中,并将该数据写入新文件,就像写入字符串数据一样。如果文件太大,请使用文件流并以可管理的数据块读取流。我的原始文件太大。我需要选择你建议的第二个选择。有没有可能提供一个示例代码或文档以供遵循?太棒了!!非常感谢,谢谢你的回复。我用开头的内容创建了file1,然后在原始文件的末尾添加了字符串。现在我想在file1的末尾添加原始文件(开始文本文件)。如果我不清楚,请告诉我。如果原始文件很小,请加载到Data
实例中,并将该数据写入新文件,就像写入字符串数据一样。如果文件太大,请使用文件流并以可管理的数据块读取流。我的原始文件太大。我需要选择你建议的第二个选择。有没有可能提供一个示例代码或文档以供遵循?太棒了!!多谢各位。