Type to search…

File

El sistema de fitxers de l'ordinador ens permet persistir les dades en memòria secundària.

Introducció

Entorn de treball

Crea un projecte file amb Amper.

Configura el projecte tal com s’explica a Fonaments.

Write

A continuació treballarem amb el fitxer src/main.kt

Kotlin té la classe kotlin.io.path.Path per representar un fitxer, que equival a la classe java.nio.file.Path.

Aquesta classe proporciona funcionalitat addicional sobre la implementació de Java mitjançant les funcions d’extensió.

El primer que has de fet per escriure un fitxer, és crear l’objecte que representa el “path” del fitxer.

kotlin
import kotlin.io.path.*

fun main() {
    val path = Path("mary.json")
}

writeText()

A continuació pots utilitzar el “path” per escriure el contingut del fitxer:

kotlin
@Serializable
data class Person(val name: String)

fun main() {

    val text = Json.encodeToString(Person("Mary"))

    val path = Path("mary.json")
    path.writeText(text)
}

Missió complerta: tenim el fitxer mary.json amb aquest contingut!

Però aquest mètode sempre funciona?

Si el fitxer té restriccions d’accés o ja s’ha obert en un altre procés no s’escriurà res perquè es produirà una AccessDeniedException per posar un exemple.

On està el fitxer?

En el directori des d’on has executat el codi.

Si és una IDE en el directori arrel del projecte.

I per ser més exactes?

directory

Per guardar les dades és millor crear una carpeta data.

Una “path” pot representar un fitxer o un directori:

kotlin
fun main() {

    val data = Path("data")
    data.createDirectory()
}

Si executo per segon cop aquest codi es produeix una Exception de tipus java.nio.file.FileAlreadyExistsException (el fitxer ja existeix).

Una opció és capturar l’excepció amb unn block “try-catch” i ignorar l’excepció:

kotlin
fun main() {

    try {
        val data = Path("data")
        data.createDirectory()
    } catch (e: java.nio.file.FileAlreadyExistsException) {
        // Ignore
    }
}

You're reading a preview.

Sign in to read the full article. Any account opens 10 free articles a month; students and teachers read their course pages without limit.

Sign in