Удаление содержимого текстового файла

Я читаю и пишу в текстовый файл. Существует случай, когда я хочу удалить содержимое файла (но не файл) в качестве своего рода перезагрузку. Как я могу это сделать?

if ((dirs) != nil) {
    var dir = dirs![0]; //documents directory

    let path = dir.stringByAppendingPathComponent("UserInfo.txt");
    println(path)
    let text = "Rondom Text"

    //writing
    text.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding, error: nil)

    //reading
    let text2 = String(contentsOfFile: path, encoding: NSUTF8StringEncoding, error: nil)

    println(text2)

3 ответов


просто напишите пустую строку в файл следующим образом:

let text = ""
text.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding, error: nil)

Если вы создали NSFileHandle, вы можете использовать -truncateFileAtOffset:, передавая 0 для смещения.

или, как указано в комментариях, вы можете просто записать пустую строку или данные в файл.

или вы можете использовать какую-то структуру данных / базу данных, которая не требует ручного усечения файлов :)


Swift 3.x

let text = ""
do {
     try text.write(toFile: fileBundlePath, atomically: false, encoding: .utf8)
} catch {
     print(error)
}

Swift 4.x

let text = ""
do {
     try text.write(to: filePath, atomically: false, encoding: .utf8)
   } catch {
     print(error)
   }