Swift:
Pisanie pliku tekstowego
Jak to zrobić:
Korzystając z Biblioteki Standardowej Swifta
Biblioteka standardowa Swifta zawiera wszystkie narzędzia potrzebne do pisania plików tekstowych. Oto podstawowe podejście:
import Foundation
let tresc = "Witajcie, czytelnicy Wired! Uczenie się Swifta jest zabawne."
let sciezkaPliku = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let nazwaPliku = "\(sciezkaPliku)/przyklad.txt"
do {
try tresc.write(toFile: nazwaPliku, atomically: false, encoding: String.Encoding.utf8)
print("Plik został pomyślnie zapisany")
} catch let error as NSError {
print("Błąd zapisu do URL: \(nazwaPliku), Błąd: " + error.localizedDescription)
}
Ten fragment kodu zapisuje ciąg znaków do pliku o nazwie przyklad.txt
w katalogu dokumentów. Obsługuje potencjalne błędy za pomocą mechanizmu obsługi błędów do-try-catch Swifta.
Korzystając z FileManagera dla Większej Kontroli
Dla większej kontroli nad atrybutami plików lub aby sprawdzić, czy plik już istnieje, można użyć FileManagera
:
import Foundation
let fileManager = FileManager.default
let katalogi = fileManager.urls(for: .documentDirectory, in: .userDomainMask)
if let katalogDokumentow = katalogi.first {
let URLPliku = katalogDokumentow.appendingPathComponent("przyklad.txt")
let tresc = "Eksploracja Swifta do zarządzania plikami jest pouczająca."
if fileManager.fileExists(atPath: URLPliku.path) {
print("Plik już istnieje")
} else {
do {
try tresc.write(to: URLPliku, atomically: true, encoding: .utf8)
print("Plik został utworzony i pomyślnie zapisany")
} catch {
print("Błąd zapisu pliku: \(error)")
}
}
}
Korzystając z Bibliotek Trzecich
Jedną z popularnych bibliotek trzecich do operacji na systemie plików w Swift jest Files
autorstwa Johna Sundella:
Najpierw dodaj Files do swojego projektu, zazwyczaj za pomocą Swift Package Manager.
// swift-tools-version:5.3
import PackageDescription
let pakiet = Package(
name: "NazwaTwojegoPakietu",
dependencies: [
.package(url: "https://github.com/JohnSundell/Files", from: "4.0.0"),
],
targets: [
.target(
name: "NazwaTwojegoCel",
dependencies: ["Files"]),
]
)
Następnie użyj jej do zapisu do pliku:
import Files
do {
let plik = try File(path: "/sciezka/do/twojego/katalogu/przyklad.txt")
try plik.write(string: "Swift i biblioteka Files stanowią potężne połączenie.")
print("Plik został pomyślnie zapisany przy użyciu biblioteki Files.")
} catch {
print("Wystąpił błąd: \(error)")
}
Dzięki bibliotece Files
, obsługa plików staje się bardziej bezpośrednia, co pozwala skupić się na logice biznesowej aplikacji, a nie na zawiłościach zarządzania plikami.