Системное свойство java.io.tmpdir
может использоваться для временного каталога пользователя:
File tmp = new File(System.getProperty("java.io.tmpdir"));
Это может быть предпочтительнее, чем File.createTempFile
(который в любом случае использует системное свойство tmpdir
под капотом) в случае, когда вы хотите искать для временных файлов (например, кэшированные данные из предыдущего вызова вашего приложения, что может быть связано с вашим вопросом).
Вы можете изменить значение системного свойства, предоставив переопределение времени выполнения в командной строке (аргумент JVM
): -Djava.io.tmpdir=C:\foo\bar
Примечание: проблема "косая черта", описанная в комментариях к ответу 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!
Очевидно, что в windows также есть переменная окружения DOS
%TEMP%
, которую можно использовать из любых имеющихся у вас сценариев