2010-05-08 1 views
0

Я пытаюсь прочитать в текстовом файле переменную String. Текстовый файл имеет несколько строк. Распечатав строку, чтобы проверить код «считывания», между каждым символом есть дополнительное пространство. Поскольку я использую String для генерации символов bigrams, пробелы делают образец текста бесполезным. КодДополнительные пространства в String, которые читают текстовый файл в String с использованием 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()); 
} 

Я был бы признателен за любые советы.

Спасибо.

ответ

0

Ваш текстовый файл, скорее всего, будет кодироваться в кодировке UTF-16 (Unicode). UTF-16 принимает два или четыре байта для представления каждого символа. Для большинства западных текстовых файлов «промежуточные» байты не подлежат печати и будут выглядеть как пробелы.

Вы можете использовать second argument of InputStreamReader, чтобы указать кодировку.

В качестве альтернативы, измените текстовый файл (Iconv на Unix, Save As .. диалог в блокноте на Windows): alt text

Смежные вопросы