La lecture d’un fichier CSV en Java ajoute un espace entre chaque caractère

Je lis un fichier CSV téléchargé sous forme de google trend, voici le contenu du fichier lorsqu’il est ouvert dans le bloc-notes (les deux premières lignes uniquement):

ferrari ferrari (erreur std)
0,735 2%

Lorsque je lis le fichier en utilisant readline, la ligne read contient un espace entre chaque caractère, dans le cas ci-dessus, le résultat est:

ferrariferrari (stderror)
0 7 3 5 2%

(Il y a des tabs entre “ferrari” et “ferrari” et entre 0.735 et 2%, ce qui n’est pas indiqué)

Le caractère de nouvelle ligne à la fin de chaque ligne est également lu deux fois. Qu’est-ce que c’est? Toute solution?

Voici le code que j’utilise pour lire le fichier:

BufferedReader Reader = new BufferedReader(new FileReader("trend.csv")); Ssortingng line = null; while ((line = Reader.readLine()) != null) System.out.println(line); 

Edit: il y a aussi des caractères étranges lus au début du fichier

Edut: Vous avez la solution

C’était le problème d’encodage, a changé la première ligne en:

 BufferedReader Reader = new BufferedReader(new InputStreamReader(new FileInputStream("trend.csv"), "UTF-16")); 

C’est dû à l’encodage des caractères … Je viens de télécharger le fichier à partir de tendances et j’ai essayé, le problème était le même.

Je me débrouillais si j’utilisais le jeu de caractères UTF-16.

 public class TrendReader { public static void main(Ssortingng args[]) throws Exception { //BufferedReader Reader = new BufferedReader(new FileReader("trends.csv")); BufferedReader Reader = new BufferedReader(new InputStreamReader(new FileInputStream("trends.csv"), "UTF-16")); Ssortingng line = null; while ((line = Reader.readLine()) != null) { System.out.println(line); } } } 

Vous devez vérifier le codage du fichier et vous devez le spécifier lors de la lecture du fichier:

 BufferedReader Reader = new BufferedReader(new InputStreamReader(new FileInputStream("trends.csv"), "UTF-8")); 

Si vous attendez le fichier UTF-8 puis modifiez son codage, au lieu de votre code, vous pouvez utiliser n’importe quel lecteur CSV open source comme OpenOffice pour lire ce fichier et spécifier le codage lors de son ouverture 🙂