本文主要介绍Java中,使用createFile创建一般文件,使用createTempFile创建临时文件的方法及示例代码。

1、创建文件

可以使用createFile(Path, FileAttribute<?>)方法创建具有初始属性集的空文件 。例如,如果在创建时希望文件具有特定的文件权限集,请使用该createFile方法来进行操作。如果未指定任何属性,则使用默认属性创建文件。如果文件已经存在,则createFile引发异常。

在单个原子操作中,该createFile方法检查文件是否存在,并使用指定的属性创建该文件,从而使该过程对恶意代码更加安全。

以下代码段创建具有默认属性的文件:

Path file = ...;
try {
    // Create the empty file with default permissions, etc.
    Files.createFile(file);
} catch (FileAlreadyExistsException x) {
    System.err.format("file named %s" +
        " already exists%n", file);
} catch (IOException x) {
    // Some other sort of failure, such as permissions.
    System.err.format("createFile error: %s%n", x);
}

POSIX File Permissions有一个示例,该示例createFile(Path, FileAttribute<?>)用于创建具有预设权限的文件。

您还可以使用newOutputStream方法使用创建新文件,如 使用Stream I / O创建和写入文件中所述。如果打开一个新的输出流并立即将其关闭,则会创建一个空文件。

2、创建临时文件

您可以使用以下createTempFile方法之一创建临时文件:

第一种方法允许代码为临时文件指定目录,第二种方法在默认的临时文件目录中创建一个新文件。两种方法都可以为文件名指定后缀,第一种方法还可以指定前缀。以下代码段给出了第二种方法的示例:

try {
    Path tempFile = Files.createTempFile(null, ".myapp");
    System.out.format("临时文件" +
        "已创建: %s%n", tempFile)
;
} catch (IOException x) {
    System.err.format("IOException: %s%n", x);
}

运行该文件的结果将类似于以下内容:

临时文件已创建:/tmp/509668702974537184184.myapp
临时文件名的特定格式是特定于平台的。

相关文档https://docs.oracle.com/javase/tutorial/essential/io/file.html