web-dev-qa-db-fra.com

Comment lire un fichier texte en clair dans Kotlin?

Il peut y avoir différentes façons de lire un fichier texte en clair dans kotlin.

Je veux savoir quelles sont les voies possibles et comment je peux les utiliser.

5
Anisuzzaman Babla

Pour lire un fichier texte, il faut d'abord le créer. Dans Android Studio, vous créeriez le fichier texte comme ceci:

1) Sélectionnez "Projet" en haut de la barre d'outils verticale pour ouvrir la "fenêtre d'outils" du projet 2) Dans le menu déroulant en haut de la "fenêtre d'outils", sélectionnez "Android" 3) Faites un clic droit sur " App "et sélectionnez" Nouveau "puis ->" Dossier "(celui avec l'icône verte Android icône à côté) puis ->" Dossier des actifs "4) Faites un clic droit sur les" actifs " dossier après son apparition dans la "fenêtre d'outils" 5) Sélectionnez "Nouveau" -> "Fichier" 6) Nommez le fichier, et incluez l'extension ".txt" s'il s'agit d'un fichier texte, ou ".html" s'il s'agit de WebView 7) Modifiez le fichier ou coupez-collez du texte dedans. Le fichier s'affichera maintenant sous les fichiers "Projet" dans la "fenêtre d'outils" et vous pourrez double-cliquer dessus pour le modifier à tout moment.

POUR ACCÉDER À CE FICHIER, utilisez un préfixe "application.assets". suivi de someFunction (fileName). Par exemple (dans Kotlin):

val fileName = "townNames.txt"
val inputString = application.assets.open(fileName).bufferedReader().use { it.readText() }
val townList: List<String> = inputString.split("\n")
1
Greg Supina

La réponse d'Anisuzzaman énumère plusieurs possibilités.

Les principales différences entre eux sont de savoir si le fichier est lu en mémoire comme une seule chaîne, lu en mémoire et divisé en lignes, ou lu ligne par ligne.

De toute évidence, la lecture du fichier entier en mémoire en une seule fois peut prendre beaucoup plus de mémoire, c'est donc quelque chose à éviter, sauf si c'est vraiment nécessaire. (Les fichiers texte peuvent devenir arbitrairement volumineux!) Ainsi, le traitement ligne par ligne avec BufferedReader.useLines() est souvent une bonne approche.

Les différences restantes sont principalement historiques. Des versions très anciennes de Java utilisaient InputStream & c qui ne distinguaient pas correctement les caractères et les octets; Reader & c ont été ajoutées pour corriger cela. Java 8 ont ajouté des façons de lire ligne par ligne plus efficacement en utilisant des flux (par exemple Files.lines()). Et plus récemment, Kotlin a ajouté ses propres fonctions d'extension (par exemple BufferedReader.useLines()) ce qui le rend encore plus simple.

0
gidds