Saltar al contenido

¿Una forma sencilla de leer un archivo local con Swift?

Solución:

Si tiene una tilde en su camino, puede intentar esto:

let location = "~/file.txt".stringByExpandingTildeInPath
let fileContent = NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding, error: nil)

de lo contrario, solo usa esto:

let location = "/Users/you/Desktop/test.txt"
let fileContent = NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding, error: nil)

Esto le da una representación de cadena del archivo, que asumí que es lo que desea. Puedes usar NSData(contentsOfFile: location) para obtener una representación binaria, pero normalmente lo haría para, digamos, archivos de música y no un archivo de texto.

Actualización: con Xcode 7 y Swift 2 esto ya no funciona. Ahora puedes usar

let location = NSString(string:"~/file.txt").stringByExpandingTildeInPath
let fileContent = try? NSString(contentsOfFile: location, encoding: NSUTF8StringEncoding)

Esto funcionaría:

let path = "~/file.txt"
let expandedPath = path.stringByExpandingTildeInPath
let data: NSData? = NSData(contentsOfFile: expandedPath)

if let fileData = data {
    let content = NSString(data: fileData, encoding:NSUTF8StringEncoding) as String
}

Tenga en cuenta que data puede ser nulo, por lo que debe verificarlo.

EDITAR: No olvide el desenvolvimiento condicional: se ve mucho mejor;)

    let file = "/Users/user/Documents/text.txt"
    let path=URL(fileURLWithPath: file)
    let text=try? String(contentsOf: path)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *