0
votes

Comment convertir ce code de Java en Kotlin pour Android Studio pour récupérer des données d'un fichier?

J'ai recherché sur la manière de récupérer un fichier à Kotlin et j'ai trouvé ce code à Java. XXX

Comment écrire ceci dans la langue de Kotlin ...? Jusqu'à présent, j'ai essayé de le convertir à Kotlin, mais il y a encore des erreurs sur certaines lignes (notées par). S'il vous plaît aidez-moi à résoudre ces erreurs. xxx


0 commentaires

5 Réponses :


0
votes

Il suffit de coller votre code Java dans le fichier Android Studio .kt, il vous suggérera de le convertir en Kotlin. Vous obtenez 99% du code de Kotlin. Puis changez quelques éléments manquants.


1 commentaires

Je sais ... je l'ai déjà fait mais ça n'a pas fonctionné ... C'est j'ai posté ma première question ici ~



0
votes

Ma solution est la suivante: xxx

On dirait que vous avez une boucle infinie là-bas, donc je le change pour chaque boucle pour lire toutes les lignes de l'INTRISTREAM


0 commentaires

0
votes

Voici ma solution:

fun load(v: View?) {
    var fis: FileInputStream? = null

    try {
        fis = openFileInput(FILE_NAME)
        val isr = InputStreamReader(fis)
        val br = BufferedReader(isr)
        val lines = br.readLines()
        val output = lines.joinToString("\n")

        mEditText.setText(output)
    } catch (e: FileNotFoundException) {
        e.printStackTrace()
    } catch (e: IOException) {
        e.printStackTrace()
    } finally {
        try {
            fis?.close()
        } catch (e: IOException) {
            e.printStackTrace()
        }
    }
}


0 commentaires

0
votes
fun void load(v: View) {
    try {
        openFileInput(FILE_NAME).use { fis ->
            val br = BufferedReader(InputStreamReader(fis))

            var text: String? = null

            while(true) {
                text = br.readLine() ?: break
                sb.append(text).append("\n")
            }

            editText.setText(sb.toString())
        }
    } catch(e: Exception) {
        e.printStackTrace()
    }
}
This should be reasonably equivalent. Please note that the if((text = br.readLine() != null) { cannot be written like that directly in Kotlin, however you can replace it with a while(true) { break;.Manual close() is not needed if you are using .use {.

0 commentaires

1
votes
File(FILE_NAME).readLines().fold(StringBuilder()){ builder, next ->
   builder.appendln(next)
}.also {
   mEditText.setText(it.toString())
}


0 commentaires