Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Read and write a String from text file

I need to read and write data to/from a text file, but I haven't been able to figure out how.

I found this sample code in the Swift's iBook, but I still don't know how to write or read 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." 
like image 672
Jorge Vega Sánchez Avatar asked Jun 07 '14 13:06

Jorge Vega Sánchez


People also ask

How do I read a text file to a string variable?

The file read() method can be used to read the whole text file and return as a single string. The read text can be stored into a variable which will be a string. Alternatively the file content can be read into the string variable by using the with statement which do not requires to close file explicitly.


1 Answers

For reading and writing you should use a location that is writeable, for example documents directory. The following code shows how to read and write a simple string. You can test it on a playground.

Swift 3.x - 5.x

let file = "file.txt" //this is the file. we will write to and read from it  let text = "some text" //just a text  if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first {      let fileURL = dir.appendingPathComponent(file)      //writing     do {         try text.write(to: fileURL, atomically: false, encoding: .utf8)     }     catch {/* error handling here */}      //reading     do {         let text2 = try String(contentsOf: fileURL, encoding: .utf8)     }     catch {/* error handling here */} } 

Swift 2.2

let file = "file.txt" //this is the file. we will write to and read from it  let text = "some text" //just a text  if let dir = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true).first {     let path = NSURL(fileURLWithPath: dir).URLByAppendingPathComponent(file)      //writing     do {         try text.writeToURL(path, atomically: false, encoding: NSUTF8StringEncoding)     }     catch {/* error handling here */}      //reading     do {         let text2 = try NSString(contentsOfURL: path, encoding: NSUTF8StringEncoding)     }     catch {/* error handling here */} } 

Swift 1.x

let file = "file.txt"  if let dirs : [String] = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String] {     let dir = dirs[0] //documents directory     let path = dir.stringByAppendingPathComponent(file);     let text = "some text"      //writing     text.writeToFile(path, atomically: false, encoding: NSUTF8StringEncoding, error: nil);      //reading     let text2 = String(contentsOfFile: path, encoding: NSUTF8StringEncoding, error: nil) } 
like image 173
Adam Avatar answered Sep 23 '22 08:09

Adam