Swift:
Escribiendo un archivo de texto

Cómo hacerlo:

Usando la Biblioteca Estándar de Swift

La biblioteca estándar de Swift incluye todas las herramientas necesarias para escribir archivos de texto. Aquí tienes un enfoque básico:

import Foundation

let content = "¡Hola, lectores de Wired! Aprender Swift es divertido."
let filePath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let fileName = "\(filePath)/ejemplo.txt"

do {
    try content.write(toFile: fileName, atomically: false, encoding: String.Encoding.utf8)
    print("Archivo escrito con éxito")
} catch let error as NSError {
    print("Error al escribir en URL: \(fileName), Error: " + error.localizedDescription)
}

Este fragmento de código escribe una cadena en un archivo llamado ejemplo.txt en el directorio de documentos. Maneja errores potenciales usando el manejo de errores do-try-catch de Swift.

Usando FileManager para Más Control

Para más control sobre los atributos del archivo o para verificar si el archivo ya existe, se puede utilizar FileManager:

import Foundation

let fileManager = FileManager.default
let directories = fileManager.urls(for: .documentDirectory, in: .userDomainMask)
if let documentDirectory = directories.first {
    let fileURL = documentDirectory.appendingPathComponent("ejemplo.txt")
    let content = "Explorar Swift para la gestión de archivos es iluminador."

    if fileManager.fileExists(atPath: fileURL.path) {
        print("El archivo ya existe")
    } else {
        do {
            try content.write(to: fileURL, atomically: true, encoding: .utf8)
            print("Archivo creado y escrito con éxito")
        } catch {
            print("Error al escribir el archivo: \(error)")
        }
    }
}

Usando Bibliotecas de Terceros

Una biblioteca de terceros popular para operaciones de sistema de archivos en Swift es Files de John Sundell:

Primero, agrega Files a tu proyecto, usualmente vía Swift Package Manager.

// swift-tools-version:5.3
import PackageDescription

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

Luego, úsalo para escribir en un archivo:

import Files

do {
    let file = try File(path: "/ruta/a/tu/directorio/ejemplo.txt")
    try file.write(string: "Swift y la biblioteca Files hacen una combinación poderosa.")
    print("Archivo escrito con éxito usando la biblioteca Files.")
} catch {
    print("Ha ocurrido un error: \(error)")
}

Con la biblioteca Files, manejar archivos se vuelve más sencillo, permitiéndote enfocarte en la lógica de negocio de tu aplicación en vez de en los detalles técnicos de la gestión de archivos.