J'essaie de lire un fichier texte ligne par ligne en utilisant InputStream à partir du répertoire des actifs d'Android.
Je veux convertir InputStream en BufferedReader pour pouvoir utiliser readLine ().
J'ai le code suivant:
InputStream is;
is = myContext.getAssets().open ("file.txt");
BufferedReader br = new BufferedReader (is);
La troisième ligne supprime l'erreur suivante:
Plusieurs marqueurs sur cette ligne Le constructeur BufferedReader (InputStream) n'est pas trouvé.
Ce que j'essaie de faire en C ++ serait quelque chose comme:
StreamReader file;
file = File.OpenText ("file.txt");
line = file.ReadLine();
line = file.ReadLine();
...
Qu'est-ce que je fais mal ou comment dois-je le faire? Merci!
BufferedReader br = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
ajouté dans Java 7Un constructeur BufferedReader prend un lecteur comme argument, pas un InputStream. Vous devez d'abord créer un lecteur à partir de votre flux, comme ceci:
De préférence, vous fournissez également un nom de jeu de caractères ou de codage de caractères au constructeur StreamReader. Puisqu'un flux ne fournit que des octets, les convertir en texte signifie que l'encodage doit être connu. Si vous ne le spécifiez pas, la valeur par défaut du système est utilisée.
la source
la source