【问题标题】:Overwriting the first N bytes in a file in Swift在 Swift 中覆盖文件中的前 N ​​个字节
【发布时间】:2017-08-31 16:12:15
【问题描述】:

我正在尝试用我自己的数据替换 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 显然会将我的文本附加到文件末尾。有没有简单的方法来获得我想要的行为?

【问题讨论】:

  • 所以,鉴于上述注释思想,您可能会从文件中读取所有字节 -> 修改 -> 回写。

标签: swift string file stream overwrite


【解决方案1】:

使用FileHandle。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2013-03-31
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多