在 java 中创建具有指定名称的临时文件

create a temporary file with a specified name in java

我有一个 Byte[] 数组,我想将其内容放入一个临时文件中。

我试过这样做

try {
            tempFile = File.createTempFile("tmp", null);
            FileOutputStream fos = new FileOutputStream(tempFile);
            fos.write(sCourrier.getBody());
        } catch (IOException e) {
            e.printStackTrace();
        }

但我希望我自己指定文件名,而不是由 jvm 生成

您可以直接给出位置和文件名,或者您可以访问本地文件系统并找到临时目录

 String tempDir=System.getProperty("java.io.tmpdir");

您可以使用临时目录和自定义文件名。

public static void main(String[] args) {
    try {
        String tempDir=System.getProperty("java.io.tmpdir");
        String sCourrier ="sahu";
        File file = new File(tempDir+"newfile.txt");
        FileOutputStream fos = new FileOutputStream(file);
        fos.write(sCourrier.getBytes());
    } catch (IOException e) {
        e.printStackTrace();
    }

您可以使用 Guava Files.createTempDir():

File file = new File(Files.createTempDir(), fileName.txt);

但因为 API 已被弃用,他们还建议使用带有更多参数的 Nio:

Path createTempDirectory(String prefix, FileAttribute<?>... attrs)

所以如果你自己有方法就更好了:

File createTempFile(String fileName, String content) throws IOException {
        String dir = System.getProperty("java.io.tmpdir");
        File file = new File(dir + fileName);
        try (FileOutputStream fos = new FileOutputStream(file)) {
            fos.write(content.getBytes(StandardCharsets.UTF_8));
        }
        return file;
    }