powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по чтению файлов из директории.
16 сообщений из 16, страница 1 из 1
Вопрос по чтению файлов из директории.
    #34270087
DesertEagle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Помогите пожалуйста с небольшой проблемкой.

Имеем:
- директорию, в которую "капают" файлы
- 5 инстансов процесса, которые должны брать файл и обрабатывать его. 5 копий процесса работают параллельно в одной директории.
- механизм параллельной обработки есть и работает, но не совсем как хотелось бы.

Но есть проблема:
- метод класса File listFiles() передает в массив ВЕСЬ список файлов в директории. Пока с этим и работаем с горем пополам, но теряем в производительности и делаем лишние действия. КАК можно сделать так, что бы передать классу не все имена файлов, а одно единственное? Можно это как - нибудь сделать?

Спасибо.
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34270154
Использовать метод listFiles(FilenameFilter filter). Или использовать JNI.
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34270294
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DesertEagle
- метод класса File listFiles() передает в массив ВЕСЬ список файлов в директории. Пока с этим и работаем с горем пополам, но теряем в производительности и делаем лишние действия. КАК можно сделать так, что бы передать классу не все имена файлов, а одно единственное? Можно это как - нибудь сделать?
Не понял. Нужен один файл, причём тут директория. Нужен любой файл из директории?
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34270473
DesertEagle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тот кого забанили

А можно про фильр поподробнее (если можно примерчик), как один файл из ста тысяч выбрать?

LINUXER

В директории много файлов. В класс нужно передать как - то одно единственное имя. Можно любое. И так сто тысяч раз. :)
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34270494
234234
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или я тебя не понимаю или тебе нужен обычный конструтор new File()
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34270503
LINUXER
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DesertEagle
В директории много файлов. В класс нужно передать как - то одно единственное имя. Можно любое. И так сто тысяч раз. :)
Для производительности - пореже вызывать listFiles();
File[] fileList=file.listFiles();
fileList[0] - 1файл
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34270595
DesertEagle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
flist[0] как раз и не подходит (скорее всего), потому что файлов может накопиться порядка ста тысяч, время обработки одного файла секунд 15 максимум. То есть получается, что каждые 15 секунд нужно вызывать список файлов и брать нулевую позицию.

Есть ли механизм другой? Если нет, то буду изобретать велосипед.
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34270641
jusio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы чем пользуетесь для получения списка файлов? listFiles() или list() ? Первый выдаёт список файлов и два-три раза медленее второго, который выдаёт список имён файлов...
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34270688
DesertEagle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пользуюсь listFiles(). Если принять, что возвращаются только имена при помощи другого метода, то это поможет не сильно. Все равно же придется прочитать все файлы с директории.
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34270698
DesertEagleВсе равно же придется прочитать все файлы с директории.
Если вы не знаете заранее имени файла, то в Java нет другого способа найти нужный файл. Для реализации поиска вам придется использовать JNI (если нет возможности работать через статические методы или каким-либо образом общаться между процессами).
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34270700
DesertEagle тот кого забанили

А можно про фильр поподробнее (если можно примерчик), как один файл из ста тысяч выбрать?

Вы в курсе, что с Java поставляется обширная документация и даже исходники классов?
В установленной JDK есть архив src.zip. В конце концов распакуйте его и посмотрите, как нужно работать с фильтрами, если нет под рукой документации.
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34270715
mysterio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Э.. Я в исходники не заглядывал, но почему-то мне кажется, что выборка файлов на основе фильтра идет далеко не средствами операционной системы. То есть выгоды никакой.

Но загляну, а то мало ли чушь сказал :)
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34270719
mysterioЭ.. Я в исходники не заглядывал, но почему-то мне кажется, что выборка файлов на основе фильтра идет далеко не средствами операционной системы. То есть выгоды никакой.

В-общем-то, я уже именно это и сказал.
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34271529
Go_For_It
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да, как варианты
1. фильтр(скажем, брать файлы начиная с заданной даты)
2. jni

и взять то, что приемлемо по производительности.

а может быть как вариант, переносить "старые" файлы в другое место? тогда не будет тормозов
по считыванию "ненужных" файлов
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34271576
mysterio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да что вы к этим фильтрам прицепились?!
Что такое фильтр? Это просто метод boolean accept(File f) - то есть вначале получаются ВСЕ файлы из директории, потом КАЖДЫЙ из них проходит через фильтр и конечное множество возвращается из listFiles(FileFilter f). ГДЕ вы здесь нашли увеличение производительности? Вот я в упор не нахожу.

JNI это бред имхо. Я не специалист в C/C++, но не вижу особых способов это взять. Интересно, это пишут, когда не знают, как это сделать на Java? Типа есть магический JNI, который решает все проблемы человечества :)

1. Взяли listFiles(). Запомнили время.
2. Обработали его (все файлы из множества полученных).
3. Если вы удаляете файл после этого, берите listFiles() опять. Если не удаляете, придется фильтровать по дате(к слову выше я писал, производительность не увеличится, просто удобно).

А так разумеется, фигачить в каждом потоке listFiles().. Вы о пулах заданий что-нибудь слышали?
В Java есть прекрасные механизмы синхронизации и готовые структуры для таких задач.
...
Рейтинг: 0 / 0
Вопрос по чтению файлов из директории.
    #34271581
mysterio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот сразу не заметил. У самого такая мысль возникла. Предыдущий автор поста предложил реально хорошую идею: перемещать файлы куда-нибудь в другой каталог.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по чтению файлов из директории.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]