Swift:
Escrevendo um arquivo de texto
Como fazer:
Usando a Biblioteca Padrão do Swift
A biblioteca padrão do Swift inclui todas as ferramentas necessárias para escrever arquivos de texto. Aqui está uma abordagem básica:
import Foundation
let content = "Olá, leitores do Wired! Aprender Swift é divertido."
let filePath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let fileName = "\(filePath)/exemplo.txt"
do {
try content.write(toFile: fileName, atomically: false, encoding: String.Encoding.utf8)
print("Arquivo escrito com sucesso")
} catch let error as NSError {
print("Falha ao escrever no URL: \(fileName), Erro: " + error.localizedDescription)
}
Este trecho de código escreve uma string em um arquivo chamado exemplo.txt
no diretório de documentos. Ele lida com possíveis erros usando a manipulação de erros do-try-catch do Swift.
Usando FileManager para Mais Controle
Para mais controle sobre os atributos do arquivo ou para verificar se o arquivo já existe, FileManager
pode ser usado:
import Foundation
let fileManager = FileManager.default
let directories = fileManager.urls(for: .documentDirectory, in: .userDomainMask)
if let documentDirectory = directories.first {
let fileURL = documentDirectory.appendingPathComponent("exemplo.txt")
let content = "Explorar Swift para gerenciamento de arquivos é esclarecedor."
if fileManager.fileExists(atPath: fileURL.path) {
print("Arquivo já existe")
} else {
do {
try content.write(to: fileURL, atomically: true, encoding: .utf8)
print("Arquivo criado e escrito com sucesso")
} catch {
print("Erro ao escrever arquivo: \(error)")
}
}
}
Usando Bibliotecas de Terceiros
Uma biblioteca de terceiros popular para operações de sistema de arquivos em Swift é Files
por John Sundell:
Primeiro, adicione Files ao seu projeto, geralmente via Swift Package Manager.
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "SeuNomeDePacote",
dependencies: [
.package(url: "https://github.com/JohnSundell/Files", from: "4.0.0"),
],
targets: [
.target(
name: "SeuNomeDeAlvo",
dependencies: ["Files"]),
]
)
Depois, use-o para escrever em um arquivo:
import Files
do {
let file = try File(path: "/caminho/para/seu/diretório/exemplo.txt")
try file.write(string: "Swift e a biblioteca Files formam uma combinação poderosa.")
print("Arquivo escrito com sucesso usando a biblioteca Files.")
} catch {
print("Ocorreu um erro: \(error)")
}
Com a biblioteca Files
, o manuseio de arquivos se torna mais direto, permitindo que você se concentre na lógica de negócios da sua aplicação em vez das minúcias do gerenciamento de arquivos.