Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как считать информацию из файла несколько раз? Работа с файлами 
V
    Опции темы
webrider
Дата 8.12.2010, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 23.8.2010

Репутация: нет
Всего: нет



Здравствуйте. Проблема в следующем. Сделал считывание вектора из файла (1-е значение - длина, остальные - значения элементов.) Всё работало до тех пор, пока не потребовалось ввести в файл несколько векторов (нужно считывать по 2 вектора и передавать их на сервер). Вот с этим и возникли проблемы. Привожу код метода считывания.
Код

public static Vector readVector(Reader in)     //Vector - это интерфейс, там только getElement, setElement и getSize
    {
        BufferedReader bin = new BufferedReader(in);
        String b;
        try 
        {
            int size = Integer.parseInt(bin.readLine());      //Длина вектора
            Vector v = createInstance(size);     //Создание пустого вектора, состоящего из size элементов, заполненного нулями
            for (int i = 0; i < size; i++)
            {
                b = bin.readLine();
                v.setElement(i, Double.parseDouble(b));       //Установка соответствующего элемента
            }
            return v;
        }
        catch (IOException e)
        {
            System.out.println(e);
        }
    }

Вызов метода:
Код

BufferedReader fileReader = new BufferedReader(new FileReader("in.txt"));
a = Vectors.readVector(fileReader);
//Vectors - это класс со статическими методами, там где у меня этот метод описан

Вектор в файле имеет вид:
Цитата
3
1.0
5.0
7.0


Код работает. А если ввести
Цитата
3
1.0
5.0
7.0
3
1.0
5.0
7.0


И попытаться вызвать:
Код

BufferedReader fileReader = new BufferedReader(new FileReader("in.txt"));
a = Vectors.readVector(fileReader);
b = Vectors.readVector(fileReader);
//Вызов, по-идее, правильный (он был дан в клиенте, значит, косяк в readVector)

То нарываемся на ошибку:
Цитата
Exception in thread "main" java.lang.NumberFormatException: null
        at java.lang.Integer.parseInt(Unknown Source)
        at java.lang.Integer.parseInt(Unknown Source)
        at MyPackage.Vectors.readVector(Vectors.java:107)       //Это место, где у меня описан метод считывания вектора из файла
        at Client_Socket.main(Client_Socket.java:34)     //А это место, где у меня вызываются методы считывания из файлов


Задача состоит в том, чтобы считывать из файла по паре векторов, чтобы потом находить их сумму.
Прошу помощи, уже думалку сломал(

Это сообщение отредактировал(а) webrider - 8.12.2010, 22:41
PM MAIL   Вверх
_Y_
Дата 9.12.2010, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



А нельзя ли весь пример выложить: код и файл данных? Тогда можно было бы код запустить и посмотреть где ошибка. Понятное дело, лучше убрать те части, которые к данной ошибке не относятся.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
AxNe0
Дата 9.12.2010, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 24.4.2006
Где: St. Petersburg

Репутация: 4
Всего: 5



в readVector() каждый раз создается новый экземпляр BufferedReader, нехорошо, можно тогда сразу передавать BufferedReader 

собственно из-за этого exception и валится

Это сообщение отредактировал(а) AxNe0 - 9.12.2010, 13:27


--------------------
SCJP 6, SCBCD 5, OCEWSD 6
blog
PM ICQ Skype   Вверх
webrider
Дата 9.12.2010, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 23.8.2010

Репутация: нет
Всего: нет



AxNe0, Спасибо! Если сразу передать BufferedReader, то работает.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0446 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.