Swift:
Написання текстового файлу

Як це зробити:

Використання стандартної бібліотеки Swift

Стандартна бібліотека Swift включає всі необхідні інструменти для запису текстових файлів. Ось базова методика:

import Foundation

let content = "Привіт, читачі Wired! Вивчення Swift веселе."
let filePath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let fileName = "\(filePath)/example.txt"

do {
    try content.write(toFile: fileName, atomically: false, encoding: String.Encoding.utf8)
    print("Файл успішно записано")
} catch let error as NSError {
    print("Помилка запису за URL: \(fileName), Помилка: " + error.localizedDescription)
}

Цей фрагмент коду записує рядок у файл під назвою example.txt у каталозі документів. Він обробляє потенційні помилки за допомогою обробки помилок Swift у вигляді do-try-catch.

Використання FileManager для більшого контролю

Для більшого контролю над атрибутами файлу або перевірки наявності файлу можна використовувати FileManager:

import Foundation

let fileManager = FileManager.default
let directories = fileManager.urls(for: .documentDirectory, in: .userDomainMask)
if let documentDirectory = directories.first {
    let fileURL = documentDirectory.appendingPathComponent("example.txt")
    let content = "Дослідження Swift для управління файлами є просвітливим."

    if fileManager.fileExists(atPath: fileURL.path) {
        print("Файл уже існує")
    } else {
        do {
            try content.write(to: fileURL, atomically: true, encoding: .utf8)
            print("Файл створено та успішно записано")
        } catch {
            print("Помилка запису файлу: \(error)")
        }
    }
}

Використання сторонніх бібліотек

Одна з популярних сторонніх бібліотек для операцій з файловою системою в Swift - це Files від John Sundell:

Спочатку додайте Files до свого проекту, зазвичай через Swift Package Manager.

// swift-tools-version:5.3
import PackageDescription

let package = Package(
    name: "YourPackageName",
    dependencies: [
        .package(url: "https://github.com/JohnSundell/Files", from: "4.0.0"),
    ],
    targets: [
        .target(
            name: "YourTargetName",
            dependencies: ["Files"]),
    ]
)

Потім використовуйте її для запису в файл:

import Files

do {
    let file = try File(path: "/path/to/your/directory/example.txt")
    try file.write(string: "Swift і бібліотека Files створюють потужну комбінацію.")
    print("Файл успішно записано за допомогою бібліотеки Files.")
} catch {
    print("Сталась помилка: \(error)")
}

З бібліотекою Files робота з файлами стає простішою, що дозволяє вам зосередитись на бізнес-логіці вашого додатку, а не на нюансах управління файлами.