powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Запись файла - определить окончание записи
25 сообщений из 37, страница 1 из 2
Запись файла - определить окончание записи
    #38892221
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сохраняю так
Код: java
1.
2.
3.
fileOut = new FileOutputStream("C:/workbook.xlsx");
wb.write(fileOut);
fileOut.close();


файл небольшой.
вопрос как определить что файл готов для считвания после сохранения?
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892301
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
на сервере?
После Close всех дескрипторов и ресурсов.
Вы же без потоков.
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892321
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
на сервере.
авторПосле Close всех дескрипторов и ресурсов.
дак вот как поймать этот момент?
после формирования файла на клиент передаётся команда. по этой команде клиент таким методом
Код: javascript
1.
document.getElementById('download').click();


Код: html
1.
<a href="files/workbook.xlsx" download id="download" ></a>


загружает файл,
но это происходит быстро. и браузер пишет, что файла нет...
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892331
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wb (из первого поста)
Workbook wb = new SXSSFWorkbook();
в идеале было б wb не записывать в файл, а преобразовать в byteArray, но как то не получается у меня.
подскажите как это можно сделать?
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892347
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпосле формирования файла на клиент передаётся команда. по этой команде клиент таким методом
выложи время в отладке:
1. fileOut.close();
2. <a href="files/workbook.xlsx" download id="download" ></a>
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892351
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а также поставь задержку, чтобы убедиться что код правильный и позже он его качает.
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892362
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, если убрать автоматизацию т.е.
клиент отправляет команду на сервер, сервер генерит файл,
сохраняет его, а клиент вручную тыкнет на
Код: html
1.
<a href="files/workbook.xlsx" download id="download" >скачать</a>


файл скачивается
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892391
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
автоматизацию)) пишешь ты сам.
Проверяй время, потоки, синхроинзируй и блокируй.
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892451
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дак я и спрашиваю, что проверить, чтоб знать что файл сохранён
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892461
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадядак я и спрашиваю, что проверить, чтоб знать что файл сохранён
Ну так после закрытия файлового потока он будет сохранен (если по исключению не отвалишься). Или кури try с ресурсами. Что не так?
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892481
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУвадядак я и спрашиваю, что проверить, чтоб знать что файл сохранён
Ну так после закрытия файлового потока он будет сохранен (если по исключению не отвалишься). Или кури try с ресурсами. Что не так?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 FileOutputStream fileOut;
            try {

                fileOut = new FileOutputStream("C:/workbook.xlsx");
                wb.write(fileOut);
        
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            System.out.println("File created!");


сообщение появляется, исключений нет
что ещё покурить?
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892485
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, xlsx - это одна из разновидностей .zip архива. Если он прочитался до конца успешно - значит файл согласован.
Пока существует временный файл ~$filename.xlsx - значит кто-то редактирует документ.

Вот в таком вот аспекте.
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892495
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадячто ещё покурить?
выше писал - хотя бы время в логах
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892513
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадячто ещё покурить?

Код: java
1.
2.
3.
try(OutputStream out = new BufferedOutputStream(new FileOutputStream(filename))){
   out.write(data); 
}
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892523
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonвадя, xlsx - это одна из разновидностей .zip архива. Если он прочитался до конца успешно - значит файл согласован.
Пока существует временный файл ~$filename.xlsx - значит кто-то редактирует документ.

Вот в таком вот аспекте.
файл не существует, он создается в коде и когда он создан он ещё в памяти - это объект wb.
приведённый выше код - это место когда объект пишется на диск.
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892550
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczвадячто ещё покурить?

Код: java
1.
2.
3.
try(OutputStream out = new BufferedOutputStream(new FileOutputStream(filename))){
   out.write(data); 
}


data == wb ?
я создаю файл с помощью apache POI
Workbook wb = new SXSSFWorkbook();
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892570
Garrick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892576
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадячто ещё покурить?
выше писал - хотя бы время в логах

время от подачи команды на клиенте до команды
document.getElementById('download').click();
587.000ms
клик по кнопке на клиенте - получение команды на сервере- создание , запись файла - ответ клиенту - document.getElementById('download').click(); = 587.000ms
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892581
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garrickвадя,

См. Create an excel file for users to download using Apache POI
спасибо ! буду проверять. вроде то, что надо
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892624
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадявремя от подачи команды
я просил примерно так:
- fileOut.close(); // 12:01:234
- запрос файла // 12:00:234
т.е. запрос на сек. раньше создания
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892671
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадявремя от подачи команды
я просил примерно так:
- fileOut.close(); // 12:01:234
- запрос файла // 12:00:234
т.е. запрос на сек. раньше создания
такое трудно сделать
fileOut.close() на сервере,
запрос файла , кторый приходит с клиета можно отловить только на самом клиенте
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892676
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

ну почемуже. Настройте чтобы логи сервера сыпались в один файл.

XX:YY.SSSS записали файл
XX:YY.SSSS отправили информацию клиенту
XX:YY.SSSS пришел запрос от клиента.

Или у Вас статику отдает другой сервер?
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892686
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадязапрос файла , кторый приходит с клиета можно отловить только на самом клиенте
это же JS, твой конёк и хлеб. Неужели не интересно разобраться?
На админку вместо админа больше времени потратил.
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892701
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня работа идет через websocket
команда с клиента на сервер через websocket, парсинк команды, выполнение : создание файла - ответ сервера через websocket
на клиенте парсинг ответа и и запрос через <a href="files/workbook.xlsx" download id="download" ></a>
но это не правильный вариант работы
1 лишние дисковые операции т.к. файл временный
2 необходимость отслеживания имен файлов, их удаления
поэтому вариант 17332700 самый оптимальный, на него и расчитывал
с файлами связался потому, как надо было проверить остальную логику работы, ну и на первых порах надеялся прокатит.
в данном случае уперлось в быстродействие файловой системы.
...
Рейтинг: 0 / 0
Запись файла - определить окончание записи
    #38892706
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадязапрос файла , кторый приходит с клиета можно отловить только на самом клиенте
это же JS, твой конёк и хлеб. Неужели не интересно разобраться?
На админку вместо админа больше времени потратил.
интересно, только "На админку вместо админа больше времени потратил." :)
и с файлами ( в данном случае - отстойный вариант) не хочется время тратить ...
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Запись файла - определить окончание записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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