Я конвертирую свое приложение из Java Android в Swift 5 iOS.
Кажется, я не могу найти ничего, что указывает на то, что я ищу.
По сути, у меня есть массив, в который я загружаю свой файл. Я использую это для доступа к указанной строке c, которую необходимо заменить. Единственное, что я не могу получить, это загрузить массив обратно в файл. (по сути, заменяя содержимое файла содержимым массива).
Я понимаю, что может потребоваться что-то сделать, чтобы преобразовать массив обратно, но не уверен, что это лучший метод.
func saveToFile(bagged: Int, iD: Int, dateBagged: Date){
var arrayOfLines: [String]?
let dateFormat = "dd-MMM-yyyy";
let dateFormatter = DateFormatter();
dateFormatter.dateFormat = dateFormat;
let dateBaggedFormatted = dateFormatter.string(from: dateBagged)
do {
let file = "file.txt"
if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {
let fileURL = dir.appendingPathComponent(file)
let data = try String(contentsOf:fileURL, encoding: String.Encoding.utf8)
arrayOfLineStrings = data.components(separatedBy: "\r\n")
for i in 0 ..< arrayOfLines!.count {
let attributes: [String] = arrayOfLines![i].components(separatedBy: ",");
if (attributes[0] == String(iD)) {
let replaceLine: String = attributes[0] + "," +
attributes[1] + "," +
attributes[2] + "," +
attributes[3] + "," +
attributes[4] + "," +
attributes[5] + "," +
String(bagged) + "," +
dateBaggedFormatted;
arrayOfLines![i]=replaceLine
break;
}
}
// let contents = try! String(contentsOf: fileURL)
// let lines = contents.split(separator:"\r\n")
//
// for line in lines {
// try line.write(to: fileURL, atomically: false, encoding: .utf8)
// }
}
}
catch {/* error handling here */}
}
Я достиг этого в Java с:
Files.write(Paths.get(outFile.getAbsolutePath()), fileContent, StandardCharsets.UTF_8); (I understand that will probably not help at all...)
Если требуется дополнительная информация. Дайте мне знать