Problems when writing to file with FileHandler

filehandle, ios, swift3

Solution

If you look into the docs for FileHandle(forWritingTo:), the return value is specified as:

The initialized file handle object or nil if no file exists at url.

The file has to exist, otherwise `nil` is returned.

The

try! "".write(to: fileURL, atomically: true, encoding: String.Encoding.utf8)

creates the file.

If you don't create the file and the file does not exist, trying to open the file using `FileHandle` will crash the app.

The code would be probably more readable, if you created the file explicitly:

FileManager.default.createFile(atPath: fileURL.path, contents: nil)

Problem

I have a code that looks like this: ``` let fileName = "name.txt" let fileURL = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(fileName) try! "".write(to: fileURL, atomically: true, encoding: String.Encoding.utf8) let fileHandle = try! FileHandle(forWritingTo: fileURL) fileHandle.seekToEndOfFile() ``` And this code works. But if i remove the line: ``` try! "".write(to: fileURL, atomically: true, encoding: String.Encoding.utf8) ``` I get runtime exception. I am not sure why this line is needed?

Original source