| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > не могу прочитать файл |
| Автор: Dastish_Fantastish 4.12.2007, 17:00 | ||
| Вот такая проблема: надо прочитать файл и узнать, являются ли первые 2 символа цифрами или нет. Прога запускается, результата нет, только пишет вот такую ошибку: java.lang.ArrayIndexOutOfBoundsException: 20 at P479.main(P479.java:15). Кстати, на с++ прога нормально работает. Содержимое файла 68abc
|
| Автор: Kangaroo 4.12.2007, 17:23 | ||
У тебя не влезает файл в массив
Мало ему места. |
| Автор: Dastish_Fantastish 4.12.2007, 17:50 |
| Так там всего-то 5 символов! Попробую увеличить размер массива Добавлено через 5 минут и 2 секунды Увеличил до 50 - не получается |
| Автор: Kangaroo 4.12.2007, 17:58 | ||
Ok. То был быстрый взгляд. Сейчас разберем.
Я так думаю у тебя бесконечный цикл получается. |
| Автор: Dastish_Fantastish 4.12.2007, 18:21 | ||||
Это у меня что-то вроде аналога в с++ while(!feof(f)). Просто в одной книге прочитал, что метод read когда доходит до конца файла, возвращает 1. Наверное, надо по-другому делать.
А как сделать, чтобы было соответсвие. Может, другой метод. Просто в яве в первый раз задачи на файлы делаю |
| Автор: Kangaroo 4.12.2007, 18:37 | ||
Вот этот пример считывает файл построчно и печатает их в консоль
|
| Автор: Dastish_Fantastish 4.12.2007, 19:13 |
| Все работает, строка читается! Спасибо еще раз! |
| Автор: Dastish_Fantastish 4.12.2007, 19:50 |
| Кстати, чуть не забыл, можешь еще написать, как построчно выполнить запись в файл примерно этим же методом? |
| Автор: dual 4.12.2007, 20:49 | ||
Вот так можно:
p.s. За синтаксическую правильность кода не ручаюсь, так как его не проверял, писал по памяти. |
| Автор: Dastish_Fantastish 5.12.2007, 12:34 |
| Спасибо, надо попробывать! |
| Автор: AlexeyVorotnikov 5.12.2007, 12:51 | ||||
Он возвращает -1, не 1. Kangaroo,
FileReader.read() читает символ, а не байт. |
| Автор: Kangaroo 5.12.2007, 13:28 | ||
Да, извиняюсь. Действительно:
Писал по памяти, но все равно недопустительная ошибка. Перепутать byte и character стримы.. Спасибо. |