2010-05-08 18 views
0

J'essaie de lire dans un fichier texte une variable String. Le fichier texte a plusieurs lignes. Après avoir imprimé la chaîne pour tester le code "en lecture", il y a un espace supplémentaire entre chaque caractère. Comme j'utilise la chaîne pour générer des bigrammes de caractères, les espaces rendent l'exemple de texte inutile. Le code estEspaces supplémentaires dans Chaîne ayant lu le fichier texte à Chaîne à l'aide de FileInputStream

try { 
    FileInputStream fstream = new FileInputStream(textfile); 
    DataInputStream in = new DataInputStream(fstream);  
    BufferedReader br = new BufferedReader(new InputStreamReader(in)); 

    //Read corpus file line-by-line, concatenating each line to the String "corpus" 
    while ((strLine = br.readLine()) != null) { 
    corpus = (corpus.concat(strLine));  
    } 

    in.close(); //Close the input stream 
} 
catch (Exception e) { //Catch exception if any 
    System.err.println("Error test check: " + e.getMessage()); 
} 

je serais reconnaissant de tout conseil.

Merci.

Répondre

0

Votre fichier texte est susceptible d'être codé en UTF-16 (Unicode). UTF-16 prend deux ou quatre octets pour représenter chaque caractère. Pour la plupart des fichiers texte occidentaux, les octets "entre-deux" ne sont pas imprimables et ressembleront à des espaces. Vous pouvez utiliser second argument of InputStreamReader pour spécifier le codage.

Vous pouvez également modifier le fichier texte (iconv sur Unix, Enregistrer sous .. dans le Bloc-notes de dialogue sous Windows): alt text