Java - Lecture d'un fichier csv ligne par ligne - coincé avec bizarre inexistante de lire les caractères!
salut amis développeurs java. Je vais avoir un très étrange question.
Je suis en train de lire un fichier csv ligne par ligne. Im sur le point où je suis en train de tester la lecture de ces lignes. Seulement à chaque fois que je lis une ligne, la ligne de contient des caractères carrés entre chaque caractère du texte. J'ai même enregistré le fichier comme un fichier txt dans wordpad et le bloc-notes avec pas de changement.
Donc je dois être en train de faire quelque chose de stupide...
J'ai un fichier csv, csv standard de fichiers, oui un fichier texte avec des virgules en elle. J'essaie de lire une ligne de texte, mais le texte est tout f-ed et ne peut pas trouver la phrase dans le texte.
Des conseils? le code ci-dessous.
//open csv
File filReadMe = new File(strRoot + "data2.csv");
BufferedReader brReadMe = new BufferedReader
(new InputStreamReader(new FileInputStream(filReadMe)));
String strLine = brReadMe.readLine();
//for all lines
while (strLine != null){
//if line contains "(see also"
if (strLine.toLowerCase().contains("(see also")){
//write line from "(see also" to ")"
int iBegin = strLine.toLowerCase().indexOf("(see also");
String strTemp = strLine.substring(iBegin);
int iLittleEnd = strTemp.indexOf(")");
System.out.println(strLine.substring(iBegin, iBegin + iLittleEnd));
}
//update line
strLine = brReadMe.readLine();
} //end for
brReadMe.close();
- ce que l'encodage des caractères est le fichier écrit dans? Vous utilisez InputStreamReader avec l'encodage, donc il va utiliser la valeur par défaut de la plateforme d'encodage, ce qui n'est pas toujours ce que vous voulez.
- Elle a été faite sur un ordinateur windows, Im en utilisant un ordinateur windows...
Vous devez vous connecter pour publier un commentaire.
Je ne peux que penser que c'est une incohérence de codage de caractères. Ouvrir le fichier dans le bloc-notes, cliquez sur Enregistrer sous, sélectionnez UTF-8 dans la liste déroulante de "encodage". Puis d'ajouter "UTF-8" comme deuxième paramètre à InputStreamReader, par exemple
Qui devrait régler les incohérences avec le codage.