Mon scanner ne lit pas mon fichier existant qui est lu à la lecture d'un bufferedreader, mais les bufferedreaders ne prennent pas en charge l'encodage UTF-8 que mon fichier a besoin.
J'ai déjà utilisé une bufferedreader (même avec UTF-8 qui Je ne me suis pas donné des lettres comme "¤" (lettre allemande) mais m'a donné des symboles d'interrogation maladroits à la place). Et j'ai bien sûr déjà utilisé un scanner. P> Il renvoie simplement une arrache -liste vide, mais ne déclenche pas la FilenotFoundException. Le themeefile est un fichier existant. P> p>
4 Réponses :
Vous devez spécifier le codage pour le fichier, s'il s'agit de quelque chose d'autre que votre système par défaut. Dans votre cas, ce sera l'endroit où vous créez le scanner code>.
Ce n'est pas mon problème. Mon problème est que cela ne trouve aucune ligne dans mon fichier
Ok, que se passe-t-il si vous vérifiez themeefile.exists () code> avant de faire autre chose? Vous venez probablement d'avoir un mauvais chemin dans
themeefile code>.
Non, car quand j'ai utilisé exactement le même fichier avec une bufferedreader, cela a fonctionné
Votre problème peut être causé par le mauvais nom de fichier ou par un fichier qui ne peut pas être lu ou en utilisant le mauvais encodage. Avez-vous essayé ma solution?
Sans le fichier à regarder, nous devinons tous simplement au problème. P>
Voici une hypothèse: il n'y a pas de ligne suivante, donc la boucle tandis que la boucle est immédiate et vous obtenez une arraylist vide. Ce serait le cas s'il n'y a pas de nouvelle ligne dans le fichier texte. P>
Dois-je télécharger mon fichier sur un site Web?
Si vous utilisez Java 8+, je recommanderais d'utiliser Fichiers # Lignes Code> Méthode:
try (Stream<String> stream = Files.lines(themeFile.toPath())) {
stream.collect(Collectors.toList()); //need to be stored in a variable.
} catch (IOException e) {
e.printStackTrace();
}
Celui-ci lance également après l'erreur suivante: java.io.unchececedioException: java.nio.charset.malformedInputException: longueur d'entrée = 1
@Marlon Check Ce pour résoudre l'exception.
J'ai eu le même problème avec le niveau de l'API 28.
Cela a fonctionné pour moi: et doit importer: p>
Avez-vous des déclarations d'impression déboguées / ajoutées pour voir ce qui se passe avec le code? Est-ce que la boucle tandis que la boucle est entrée?
bufferedreader code> prend en charge le texte UTF-8.
Bien sûr, la boucle tandis que la boucle n'est pas entrée, car la flambée renvoyée a une taille de 0
Dans votre bloc Catch, vous renvoyez également une liste
vide code>. Êtes-vous sûr qu'aucun message d'erreur n'est imprimé?
Oui. Il n'y a pas de message d'erreur du tout