Мне нужно читать и записывать данные в / из текстового файла, но я не смог понять, как.
Я нашел этот пример кода в iBook Swift, но я все еще не знаю, как писать или читать данные.
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
делает именно это.Предполагая, что вы переместили ваш текстовый файл
data.txt
в ваш Xcode-проект (используйте drag'n'drop и отметьте «Копировать файлы при необходимости»), вы можете сделать следующее, как в Objective-C:Обновление:
для чтения файла из Bundle (iOS) вы можете использовать:
Обновление для Swift 3:
Для Swift 5
источник
Xcode 8.x • Swift 3.x или новее
источник
Новый более простой и рекомендуемый метод: Apple рекомендует использовать URL-адреса для обработки файлов, а другие решения здесь не рекомендуются (см. Комментарии ниже). Ниже приведен новый простой способ чтения и записи по URL-адресам (не забывайте обрабатывать возможные ошибки URL-адресов):
Свифт 5+, 4 и 3,1
источник
Xcode 8, Swift 3 способа чтения файла из комплекта приложения:
Вот удобное расширение для копирования и вставки
Например
Вы почти всегда хотите массив строк:
источник
Я хочу показать вам только первую часть, которая читается . Вот как просто вы можете прочитать:
Свифт 3:
Свифт 2:
источник
Простейший способ прочитать файл в Swift> 4.0
источник
В текущем принятом ответе от Адама выше были некоторые ошибки для меня, но вот как я переработал его ответ и сделал эту работу для меня.
источник
Этот инструмент может оказаться полезным не только для чтения из файла в Swift, но и для анализа вашего ввода: https://github.com/shoumikhin/StreamScanner
Просто укажите путь к файлу и разделители данных следующим образом:
Надеюсь это поможет.
источник
Я должен был перекодировать, как это:
источник
В примере функции (read | write) DocumentsFromFile (...), имеющий некоторые обертки функций, безусловно, имеет смысл, так как все в OSx и iOS, кажется, требует создания трех или четырех основных классов и набора свойств, настроенных, связанных, создан и установлен, чтобы просто написать «Привет» в файл, в 182 странах.
Однако эти примеры недостаточно полны для использования в реальной программе. Функция записи не сообщает об ошибках создания или записи в файл. При чтении я не думаю, что будет хорошей идеей вернуть ошибку, что файл не существует в виде строки, которая должна содержать данные, которые были прочитаны. Вы хотели бы знать, что это не удалось и почему, через какой-то механизм уведомления, как исключение. Затем вы можете написать некоторый код, который выводит, в чем заключается проблема, и позволяет пользователю ее исправить, или «правильно» ломает программу в этой точке.
Вы бы не хотели просто возвращать строку с «файлом ошибок не существует». Затем вам нужно будет каждый раз искать ошибку в строке при вызове функции и обрабатывать ее там. Вы также, возможно, не могли точно сказать, была ли строка ошибки действительно прочитана из фактического файла, или она была сгенерирована из вашего кода.
Вы не можете даже вызвать чтение как это в swift 2.2 и Xcode 7.3, потому что NSString (contentsOfFile ...) выдает исключение. Это ошибка времени компиляции, если у вас нет кода, чтобы перехватить его и что-то с ним сделать, например напечатать его в stdout или, что еще лучше, всплывающее окно с ошибкой или stderr. Я слышал, что Apple отказывается от попыток перехвата и исключений, но это будет долгий шаг, и без этого невозможно написать код. Я не знаю, откуда берется аргумент & error, возможно, более старая версия, но NSString.writeTo [File | URL] в настоящее время не имеет аргумента NSError. Они определены так в NSString.h:
Кроме того, несуществующий файл - это лишь одна из потенциальных проблем, с которыми ваша программа может столкнуться при чтении файла, таких как проблема с разрешениями, размером файла или множеством других проблем, которые вы даже не захотите пытаться кодировать обработчиком. каждый из них. Лучше всего просто предположить, что все правильно, и поймать и распечатать или обработать исключение, если что-то пойдет не так, кроме того, на данный момент у вас все равно нет выбора.
Вот мои переписывает:
источник
Для моего TXT-файл работает следующим образом:
источник
Чтобы избежать путаницы и добавить простоты, я создал две функции для чтения и записи строк в файлы в каталоге документов. Вот функции:
Вот пример их использования:
Надеюсь это поможет!
Версия Xcode: 6.3.2
источник
Последний код swift3
Вы можете читать данные из текстового файла, просто используйте приведенный ниже код Это мой текстовый файл
}
Вы можете использовать этот код, вы получаете данные из текстового файла JSON в Swift3
источник
Это работает с Swift 3.1.1 в Linux:
источник
написать в ViewDidLoad
источник
Предыдущие решения отвечают на вопрос, но в моем случае удаление старого содержимого файла во время записи было проблемой.
Итак, я создал фрагмент кода для записи в файл в каталоге документов без удаления предыдущего содержимого. Возможно, вам нужна лучшая обработка ошибок, но я считаю, что это хорошая отправная точка. Swift 4. Использование:
Вспомогательные методы:
источник
Swift 3.x - 5.x
Лучший пример - создать локальный
Logfile
с расширением,.txt
которое можно увидеть и показать в"Files App"
файла с текущей датой и временем как имя файла.просто добавьте этот код в info.plist, чтобы включить эти две функции
и эта функция ниже
источник
источник
Xcode 8.3.2 Swift 3.x . Использование NSKeyedArchiver и NSKeyedUnarchiver
Чтение файла из документов
Записать файл в документы
источник