Ответ 1
Системное свойство java.io.tmpdir
может использоваться для временного каталога пользователя:
File tmp = new File(System.getProperty("java.io.tmpdir"));
Это может быть предпочтительнее File.createTempFile
(которое в любом случае использует системное свойство tmpdir
под капотом) в том экземпляре, где вы хотите искать временные файлы (например, кэшированные данные из предыдущего вызова вашего приложения, которое звучит так, как будто это может быть из вашего вопроса).
Вы можете изменить значение системного свойства, предоставив в командной строке переопределение (a JVM
): -Djava.io.tmpdir=C:\foo\bar
Примечание. проблема "trailing slash" , описанная в комментариях к seth-ответу ниже, можно избежать, используя соответствующий конструктор File
:
String fileName = "foobar.txt"
String tmpPath = System.getProperty("java.io.tmpdir");
File tmpFile;
tmpFile = new File(tmpPath + File.separator + fileName); //possible problem
tmpFile = new File(new File(tmpPath), fileName); //OK!
Очевидно, что окна также имеют переменную среды DOS
%TEMP%
, которая может использоваться из любых скриптов, которые у вас есть