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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение файлов из 10000 строк 
:(
    Опции темы
Forgiven
Дата 22.10.2009, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В своем первом опыте написания программы столкнулся с проблемой: при чтении файлов из 10000 строк по факту считывается около 4000, причем на другой машине это число ближе к 5-7к.
Само чтение:
Код

    private static void buildHistogramm(String fname) {
        // bla bla bla
        
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader(fname));
        } catch (FileNotFoundException ex) {
            System.out.println(ex.getMessage());
        }

        //String tmpStr = null;
        int i = 0;
        try {
            // while ((tmpStr = br.readLine()) != null)
            while (br.readLine() != null) {
                 // считаю количество строк
                i++;
            }
            br.close();    
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        System.out.println(i);
    }


Остальные исходники - в архиве (кода немного).

Это сообщение отредактировал(а) Forgiven - 22.10.2009, 09:50

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  lab4.tar.gz 45,13 Kb
PM MAIL   Вверх
ivanovpv
Дата 22.10.2009, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

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



Цитата(Forgiven @  22.10.2009,  09:45 Найти цитируемый пост)
В своем первом опыте написания программы столкнулся с проблемой: при чтении файлов из 10000 строк по факту считывается около 4000, причем на другой машине это число ближе к 5-7к.


Забили оперативную память, чего же вы хотите то... Надо контролировать величину буфера куда вы читаете и читать надо чанками (то есть кусками).


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
Forgiven
Дата 22.10.2009, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пардон, не совсем понял как это обойти, можно подробнее?
PM MAIL   Вверх
Skynin
Дата 22.10.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

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



Не поверил, проверил Ваш код - 3777768 строк в файле 290 М, как и показывает AkelPad.


Это сообщение отредактировал(а) Skynin - 22.10.2009, 17:28
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
AxNe0
Дата 22.10.2009, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Forgiven,  у меня этот код прекрасно считывает количество строк в 800-тысячном файле. Ты бы написал, что за ошибка появляется, что ли... Все-таки люди здесь - не телепаты


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


Новичок



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

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



Уф, простите за введение в заблуждение. Нашел глюк. Как это часто бывает, он сидит за клавиатурой.
Что происходило на самом деле. Сначала один метод скидывал данные в файл. Потом вызывал другой, который читал их оттуда. И только потом в первом методе закрывался файл. Т.е. на момент чтения в нем были ещё не все данные, а на момент окончания работы программы - все было на месте. В итоге я видел якобы корректно записанный, но криво считанный файл.
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.0586 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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