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方法之一创建临时文件:
- createTempFile(Path, String, String, FileAttribute<?>)
- createTempFile(String, String, FileAttribute<?>)
第一种方法允许代码为临时文件指定目录,第二种方法在默认的临时文件目录中创建一个新文件。两种方法都可以为文件名指定后缀,第一种方法还可以指定前缀。以下代码段给出了第二种方法的示例:
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