         }
         filePath = fileAtPath
         // Try to retrieve attributes of `fileAtPath`
+        let attributes: [FileAttributeKey : Any]
         do {
             attributes = try FileManager.default.attributesOfItem(atPath: filePath)
         } catch {

    /// Initialize the object and the input stream meta data for file at 
    /// `fileAtPath`.
    public init?(fileAtPath: String) {
        let attributes: [FileAttributeKey : Any]

        // Does file `atFilePath` exists
        guard FileManager.default.fileExists(atPath: fileAtPath) else {
            FileInputStream.log(level: .error, "File not found: \(fileAtPath).")

    /// - Returns: Return the number of bytes read.
    override open func read(_ buffer: UnsafeMutablePointer<UInt8>, maxLength: Int) -> Int {
        let readError = -1

        guard let fileHandle = fileHandle else {
            return readError
        }
        let data = fileHandle.readData(ofLength: maxLength)
        if data.count < maxLength {
            _streamStatus = .atEnd
        }
