Как изменить имя временного файла Apache POI SXSSFWorkbook по умолчанию
Я использую класс POX SXSSFWorkbench для создания очень больших книг. Мое приложение может работать одновременно с несколькими процессами, поэтому я подумал, что было бы разумно добавить идентификатор процесса к временному имени файла по умолчанию. Я не знаю, как это сделать, и не смог найти ни одного недавнего примера кодирования.
Может кто-нибудь указать мне пример или наметить мне, что должно быть сделано? Я вижу, что есть статический метод TempFile.createTempFile. Должен ли я выполнить это с использованием переопределения класса перед созданием экземпляра класса SXSSFWorkbook? Или после?
Я также увидел, что существует класс DefaultTempFileCreationStrategy. Не могу найти примеры того, как использовать это либо.
1 ответ
Основным классом, который Apache POI использует для этого, является TempFile.
Вы хотите вызвать метод TempFile.setTempFileCreationStrategy
Что вам нужно сделать, это создать свой собственный класс, реализующий интерфейс TempFileCreationStrategy. Это красиво и просто, всего два метода, createTempDirectory и createTempFile.
Чтобы получить представление о том, что происходит, вы можете посмотреть исходный код DefaultTempFileCreationStrategy здесь. Это довольно просто, просто вставьте логику для собственных нужд с точки зрения потоков и имен.