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.