在Swift中覆盖文件中的前N个字节

时间:2017-04-05 20:57:04

标签: swift string file stream overwrite

我试图用我自己的数据替换Swift文件中的前N个字节,保持文件的其余部分不变,例如我有字符串"OOPS",文件(任意长度)当前包含Look, a daisy,我希望它包含OOPS, a daisy。我发现的内置功能并不能满足我的需求:

try "OOPS".write(to: path, atomically: false, encoding: String.Encoding.utf8)

替换整个文件

let outputStream = OutputStream(url: outputURL, append: false)
outputStream.write("OOPS", maxLength: 4)

的行为方式相同,将append设置为true显然会将文字附加到文件的末尾。有没有一种简单的方法来获得我想要的行为?

1 个答案:

答案 0 :(得分:3)

使用FileHandle

let handle = FileHandle(forWritingTo: outputURL)
handle.seek(toFileOffset: 0)
handle.write("OOPS".data(using: .utf8))
handle.closeFile()

我留给读者来处理处理选项并需要捕获错误。