Как создать временный файл в Groovy? - PullRequest
23 голосов
/ 02 декабря 2010

В Java существует функция java.io.File.createTempFile для создания временных файлов. В Groovy такой функции, похоже, не существует, так как эта функция отсутствует в классе File. (См .: http://docs.groovy -lang.org / latest / html / groovy-jdk / java / io / File.html )

Есть ли в любом случае разумный способ создать временный файл или путь к файлу в Groovy, или мне нужно создать его самому (что нелегко получить, если я не ошибаюсь)?

Заранее спасибо!

Ответы [ 3 ]

39 голосов
/ 03 декабря 2010
File.createTempFile("temp",".tmp").with {
    // Include the line below if you want the file to be automatically deleted when the 
    // JVM exits
    // deleteOnExit()

    write "Hello world"
    println absolutePath
}

Упрощенная версия

Кто-то заметил, что не может понять, как получить доступ к созданному File, поэтому вот более простая (но функционально идентичная) версия кода выше.

File file = File.createTempFile("temp",".tmp")
// Include the line below if you want the file to be automatically deleted when the 
// JVM exits
// file.deleteOnExit()

file.write "Hello world"
println file.absolutePath
6 голосов
/ 02 декабря 2010

Вы можете использовать java.io.File.createTempFile() в своем коде Groovy.

def temp = File.createTempFile('temp', '.txt') 
temp.write('test')  
println temp.absolutePath
4 голосов
/ 02 декабря 2010

Классы Groovy расширяют класс файлов Java, поэтому делайте это так, как вы обычно делаете в Java.

File temp = File.createTempFile("temp",".scrap");
temp.write("Hello world")
println temp.getAbsolutePath()  
...