Всем доброго дня. Спасибо, что заглянули на огонёк. Пока не вникайте в код, возможно Вы сможете помочь и без него. Проблема заключается в следующем. У нас есть два файла: "One" и "Two". В One хранится итоговая таблица, куда нам надо произвести записи из файла Two. Представим, что файл Two содержит данные как на Английском, так и на Русском языках. Поскольку файл Two может быть достаточно большим, имеет смысл считывать данные из него не по байтам / символам, а - строками. Для этого отлично подойдёт класс BufferedReader. Он особенно хорош тем, что при его использовании мы можем указать кодировку файла, из которого читаем данные. Я хочу достать первые 8 символов (Наш ID) из каждой строки и записать в ArrayList<Integer>. Т.е.:
arr.add(Integer.parseInt(x.substring(0, 7)));
У меня есть текстовый файл FileName. Кодировка - UTF-8 (Выставил сам, вместо "ANSI"). В нём есть три строки: 12345678 123456789123456789123456789123 12345.00 1234 12345677 ZXCVBNM<AS ASDFGHJQ ERW ED 12312.15 21 12345679 ФПАРВТПРСОВТВРМТЫР РОАР 12212.33 9 Так или иначе - я получаю строку из которой выдираю первые 8 символов и... Дальше начинаются проблемы. Вот мы и подошли к сути. Вторая и третья строки - преобразуются в Integer без проблем. Но первая - нет. Выскакивает "NumberFormatException". Выскакивает из-за того, что перед "12345678" есть некий, невидимый символ, который нельзя преобразовать в Integer. Если я буду проводить побайтовое чтение, то этим невидимым символом окажутся вот эти ребята: "". В таком случае, конечно, я могу их пропустить и записать всё корректно. Но, неужели нельзя обойти эти символы при использовании BufferedReader'a? Без разбора строки на байты и всего этого? Буду благодарен за помощь и подсказки. Спасибо.