powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / NIO Копирование файла несколькими частями
22 сообщений из 22, страница 1 из 1
NIO Копирование файла несколькими частями
    #38915613
sesh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, помогите пож-ста написать или подсказать примером, необходимо скопировать файл одновременно несколькими потоками, чтоб каждый поток вычитывал свой кусок, например длину файла/5 и чтоб его копировало в 5 потоков и потом эти 5 частей сохранить обратно в файл
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38915897
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seshи потом эти 5 частей сохранить обратно в файл
Непонятно. Нужно создать file1, file2....file5 и "потом" их склеивать.

К сведению, операция "склейки" может нивелировать весь полезный
эффект от 5-поточного копирования.
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38915901
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonseshи потом эти 5 частей сохранить обратно в файл
Непонятно. Нужно создать file1, file2....file5 и "потом" их склеивать.

К сведению, операция "склейки" может нивелировать весь полезный
эффект от 5-поточного копирования.

М...а почему...может нивилировать...я так понимаю в один Stream вливается другой и т.д. до пятого.
Операция вроде не совсем ресурсоёмкая....или я что-то не учёл?
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38915908
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще чтение файла в потоках приведет только к замедлению процесса чтения с диска(lдаже ssd)
поэтому эту задачу можно рассматривать только как учебную.
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38915917
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если диск является типа RAID-0 то возможны условия когда будет прирост в скорости
копирования.
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38915951
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sesh,

Можно через MappedByteBuffer, FileChannel.map(FileChannel.MapMode mode, long position, long size), position=i*fileSize/5, size=fileSize/5. 5 на чтение, 5 на запись.
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38915953
sesh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Будем считать как учебную задачу, надо что-то написать типа даунлоад мастера или торрента, берет файл и бьет его на части, эти части копирует и потом объединяет обратно в 1 файл, это все локально делать, не с нета тянуть, подмогите пож-ста
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38915957
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sesh,

"Скопировать файл" и скачать по HTTP/TCP это вообще не одно и то же. Почем обязательно NIO?
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916047
sesh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczsesh,

"Скопировать файл" и скачать по HTTP/TCP это вообще не одно и то же. Почем обязательно NIO?

NIO не обязательно, главное сделать, читал Шилдта, копировать файл без проблем, в потоке тоже, а как частями - ума не приложу как писать
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916114
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seshNIO не обязательно
Уже хорошо.

seshчитал Шилдта, копировать файл без проблем
Вы принципиально игнорируете то что вам пишут? Под "копированием" и "скачиванием по HTTP" обычно имеют ввиду совершенно разные процессы.

seshв потоке тоже, а как частями - ума не приложу как писать
1) Научится скачивать файл по HTTP в один поток.
2) Научится читать спеки по HTTP
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
и гуглить примеры по ключевым словам
https://www.google.com/search?q=Java http download range
3) Прочитать основы про многопоточность
http://docs.oracle.com/javase/tutorial/essential/concurrency/index.html
и ExecutorService
http://docs.oracle.com/javase/tutorial/essential/concurrency/exinter.html
4) Скомбинировать полученные знания и примеры в единый код. Спрашивать что-то конкретное что вызвало затруднение.
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916157
sesh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я про HTTP ничего не писал, просто копирование диска на диск в несколько частей в разных потоках, этого достаточно
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916211
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seshЯ про HTTP ничего не писал, просто копирование диска на диск в несколько частей в разных потоках, этого достаточно
Извините. Не внимательно прочитал предыдущее сообщение. Ну, собственно, тогда убираем всё что касается HTTP. Используем RandomAccessFile. Что конкретно вызывает затруднение? Многопоточная запись или что-то ещё?
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916251
sesh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczseshЯ про HTTP ничего не писал, просто копирование диска на диск в несколько частей в разных потоках, этого достаточно
Извините. Не внимательно прочитал предыдущее сообщение. Ну, собственно, тогда убираем всё что касается HTTP. Используем RandomAccessFile. Что конкретно вызывает затруднение? Многопоточная запись или что-то ещё?

Пример нашел про чтение файла http://devcolibri.com/2989 многопоточность тоже http://habrahabr.ru/post/116363/ но вот как в поток передавать с какого символа читать файл?
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916269
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sesh,

Код: java
1.
executor.submit(new FilePartCopyTask(position, length));
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916366
sesh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczsesh,

Код: java
1.
executor.submit(new FilePartCopyTask(position, length));



Спасибо огромное за помощь!!!
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916371
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seshСпасибо огромное за помощь!!!
И даже не спросишь что такое FilePartCopyTask ?
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916480
0FD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sesh,

Если будете использовать http://devcolibri.com/2989, то RandomAccessFile не является потокобезопасным, в отличии от FileChannel из RandomAccessFile.getChannel() и методов FileChannel.transfer...(которые внутри используют MappedByteBuffer).
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916496
sesh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonseshСпасибо огромное за помощь!!!
И даже не спросишь что такое FilePartCopyTask ?

Думал что-то стандартное, нагуглю, а не тут то было, а что это?
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916529
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seshДумал что-то стандартное, нагуглю, а не тут то было, а что это?
рукалицо.
Это ваш класс, который реализует копирование части файла. Вопрос был в том как передать параметры? Через аргументы конструктора, например.
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916569
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczЭто ваш класс, который реализует копирование части файла. Вопрос был в том как передать параметры? Через аргументы конструктора, например.

тю, так выше же показано, что как аргументы передаются, наверное майтон что-то другое имел ввиду
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916634
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,

Не знаю че там где показано. ТС спросил, я ответил.
...
Рейтинг: 0 / 0
NIO Копирование файла несколькими частями
    #38916644
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
seshmaytonпропущено...

И даже не спросишь что такое FilePartCopyTask ?

Думал что-то стандартное, нагуглю, а не тут то было, а что это?
Блажкович концептуален и совершенно правилен. Но его ответ - это
ответ математика - "Вы находитесь в корзине воздушного шара..." из
известного анекдота.

А тебе предлагаю запостить в форум заготовку. Или макет который хотя-бы
на 10% работает. Ну и компилируется естественно.

Сообщество поможет.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / NIO Копирование файла несколькими частями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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