Java - Чтение CSV-файла строка за строкой - застрял в чтении странных несуществующих символов! - PullRequest
0 голосов
/ 21 мая 2010

привет товарищи по Java. У меня очень странная проблема.

Я пытаюсь прочитать файл CSV построчно. Я нахожусь в точке, где я просто проверяю чтение строк. ТОЛЬКО каждый раз, когда я читаю строку, строка содержит квадратные символы между каждым символом текста. Я даже сохранил файл как текстовый файл в WordPad и блокноте без изменений.

Таким образом, я должен делать что-то глупое ...

У меня есть CSV-файл, стандартный CSV-файл, да, текстовый файл с запятыми в нем. Я пытаюсь прочесть строку текста, но текст весь всплывающий и не может найти фразу в тексте.

Любой совет? код ниже.

    //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();

1 Ответ

4 голосов
/ 21 мая 2010

Я могу только думать, что это противоречивая кодировка символов. Откройте файл в блокноте, выберите «Сохранить как» и выберите UTF-8 в раскрывающемся списке «Кодировка». Затем добавьте «UTF-8» в качестве второго параметра для InputStreamReader, например,

BufferedReader brReadMe = new BufferedReader
     (new InputStreamReader(new FileInputStream(filReadMe), "UTF-8"));

Это должно устранить любые несоответствия с кодировкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...