Saya perlu membaca dan menulis data ke / dari file teks, tetapi saya belum bisa mengetahuinya.
Saya menemukan kode sampel ini di iBook Swift, tetapi saya masih tidak tahu bagaimana menulis atau membaca data.
import Cocoa
class DataImporter
{
/*
DataImporter is a class to import data from an external file.
The class is assumed to take a non-trivial amount of time to initialize.
*/
var fileName = "data.txt"
// the DataImporter class would provide data importing functionality here
}
class DataManager
{
@lazy var importer = DataImporter()
var data = String[]()
// the DataManager class would provide data management functionality here
}
let manager = DataManager()
manager.data += "Some data"
manager.data += "Some more data"
// the DataImporter instance for the importer property has not yet been created”
println(manager.importer.fileName)
// the DataImporter instance for the importer property has now been created
// prints "data.txt”
var str = "Hello World in Swift Language."
//reading
tidak persis seperti itu.Dengan asumsi bahwa Anda telah memindahkan file teks Anda
data.txt
ke proyek-Xcode Anda (Gunakan drag'n'drop dan centang "Salin file jika perlu") Anda dapat melakukan hal berikut seperti di Objective-C:Pembaruan:
Untuk membaca file dari Bundle (iOS) Anda dapat menggunakan:
Pembaruan untuk Swift 3:
Untuk Swift 5
sumber
Xcode 8.x • Cepat 3.x atau lebih baru
sumber
Metode baru yang lebih sederhana dan direkomendasikan: Apple merekomendasikan penggunaan URL untuk penanganan file dan solusi lain di sini tampaknya sudah usang (lihat komentar di bawah). Berikut ini adalah cara sederhana baru membaca dan menulis dengan URL (jangan lupa untuk menangani kemungkinan kesalahan URL):
Swift 5+, 4 dan 3.1
sumber
Xcode 8, cara cepat 3 untuk membaca file dari bundel aplikasi:
Berikut adalah Salinan dan tempel Ekstensi yang nyaman
Sebagai contoh
Anda hampir selalu menginginkan array baris:
sumber
Saya ingin menunjukkan kepada Anda hanya bagian pertama, yaitu membaca . Berikut cara sederhana yang dapat Anda baca:
Swift 3:
Swift 2:
sumber
Cara termudah untuk membaca file di Swift> 4.0
sumber
Jawaban diterima saat ini di atas dari Adam memiliki beberapa kesalahan untuk saya, tetapi di sini adalah bagaimana saya mengerjakan ulang jawabannya dan membuat ini bekerja untuk saya.
sumber
Anda mungkin menemukan alat ini berguna untuk tidak hanya membaca dari file di Swift tetapi juga menguraikan input Anda: https://github.com/shoumikhin/StreamScanner
Cukup tentukan path file dan pembatas data seperti ini:
Semoga ini membantu.
sumber
Saya harus mengode ulang seperti ini:
sumber
Dalam contoh fungsi, (baca | tulis) DocumentsFromFile (...) memiliki beberapa fungsi pembungkus tampaknya masuk akal karena segala sesuatu di OSx dan iOS tampaknya memerlukan tiga atau empat kelas utama yang dipakai dan banyak properti, dikonfigurasi, dihubungkan, dipakai, dan set, hanya untuk menulis "Hai" ke file, di 182 negara.
Namun, contoh-contoh ini tidak cukup lengkap untuk digunakan dalam program nyata. Fungsi tulis tidak melaporkan kesalahan apa pun yang membuat atau menulis ke file. Saat membaca, saya pikir itu bukan ide yang baik untuk mengembalikan kesalahan bahwa file tidak ada sebagai string yang seharusnya berisi data yang telah dibaca. Anda ingin tahu bahwa itu gagal dan mengapa, melalui beberapa mekanisme pemberitahuan, seperti pengecualian. Kemudian, Anda dapat menulis beberapa kode yang menampilkan apa masalahnya dan memungkinkan pengguna untuk memperbaikinya, atau "dengan benar" merusak program pada saat itu.
Anda tidak ingin hanya mengembalikan string dengan "File kesalahan tidak ada" di dalamnya. Kemudian, Anda harus mencari kesalahan dalam string dari memanggil fungsi setiap kali dan menanganinya di sana. Anda juga mungkin tidak bisa memastikan apakah string kesalahan benar-benar dibaca dari file yang sebenarnya, atau apakah itu dihasilkan dari kode Anda.
Anda bahkan tidak dapat memanggil read seperti ini di swift 2.2 dan Xcode 7.3 karena NSString (contentOfFile ...) melempar pengecualian. Ini adalah kesalahan waktu kompilasi jika Anda tidak memiliki kode untuk menangkapnya dan melakukan sesuatu dengannya, seperti mencetaknya ke stdout, atau lebih baik, jendela sembulan galat, atau stderr. Saya telah mendengar bahwa Apple menjauh dari try catch dan pengecualian, tetapi ini akan menjadi langkah yang panjang dan tidak mungkin untuk menulis kode tanpa ini. Saya tidak tahu dari mana argumen & kesalahan berasal, mungkin versi yang lebih lama, tetapi NSString.writeTo [File | URL] saat ini tidak memiliki argumen NSError. Mereka didefinisikan seperti ini di NSString.h:
Selain itu, file yang tidak ada hanyalah salah satu dari sejumlah masalah potensial yang mungkin dimiliki program Anda ketika membaca file, seperti masalah izin, ukuran file, atau berbagai masalah lain yang Anda bahkan tidak ingin mencoba membuat kode penangan untuk masing-masing dari mereka. Yang terbaik adalah menganggap semuanya benar dan menangkap dan mencetak, atau menangani, pengecualian jika ada yang salah, selain itu, pada titik ini, Anda tidak benar-benar punya pilihan.
Inilah penulisan ulang saya:
sumber
Untuk file txt saya cara ini:
sumber
Untuk menghindari kebingungan dan menambah kemudahan, saya telah membuat dua fungsi untuk membaca dan menulis string ke file di direktori dokumen. Berikut fungsinya:
Berikut ini adalah contoh penggunaannya:
Semoga ini membantu!
Versi Xcode: 6.3.2
sumber
Kode swift3 terbaru
Anda dapat membaca data dari file teks cukup gunakan kode di bawah ini file teks saya ini
}
Anda dapat menggunakan kode ini Anda mendapatkan data dari file teks json di swift3
sumber
Ini bekerja dengan Swift 3.1.1 di Linux:
sumber
tulis di ViewDidLoad
sumber
Solusi sebelumnya menjawab pertanyaan, tetapi dalam kasus saya menghapus konten file lama saat menulis adalah masalah.
Jadi, saya membuat sepotong kode untuk menulis ke file dalam direktori dokumen tanpa menghapus konten sebelumnya. Anda mungkin perlu penanganan kesalahan yang lebih baik, tetapi saya percaya ini adalah titik awal yang baik. Swift 4. Bahasa:
Metode pembantu:
sumber
Swift 3.x - 5.x
Contoh terbaik adalah membuat lokal
Logfile
dengan ekstensi.txt
yang dapat terlihat dan ditampilkan"Files App"
dengan tanggal dan waktu saat ini sebagai nama filecukup tambahkan kode ini di info.plist aktifkan kedua fitur ini
dan Fungsi Ini Di Bawah Ini
sumber
sumber
Xcode 8.3.2 Swift 3.x . Menggunakan NSKeyedArchiver dan NSKeyedUnarchiver
Membaca file dari dokumen
Tulis file ke dokumen
sumber