7.6Java 实例 - 创建临时文件
以下实例演示了使用 File 类的 createTempFile(String prefix, String suffix); 方法在默认临时目录来创建临时文件,参数 prefix 为前缀,suffix 为后缀:
Main.java 文件
import java.io.*;
public class Main1 {//7.6
public static void main(String[] args) throws Exception {
File temp = File.createTempFile("testrunoobtmp", ".txt");//创建临时txt文档
System.out.println("文件路径: "+temp.getAbsolutePath());//获取绝对路径
temp.deleteOnExit();
/**
* void deleteOnExit()
请求在虚拟机终止时删除由此抽象路径名表示的文件或目录。
*/
BufferedWriter out = new BufferedWriter(new FileWriter(temp));
out.write("aString");//缓冲区
System.out.println("临时文件已创建:"+temp.getName());
out.close();//写入
}
}
文件路径: C:\Users\xyt\AppData\Local\Temp\testrunoobtmp4681133015210356599.txt
临时文件已创建:testrunoobtmp4681133015210356599.txt
也可以使用
createTempFile(String prefix, String suffix, File directory)
中的 directory 参数来指定临时文件的目录:
createTempFile
import java.io.File;
public class Main1 {
public static void main(String[] args) {
File f = null;
try {
// 创建临时文件
f = File.createTempFile("tmp", ".txt", new File("C:/"));
// 输出绝对路径
System.out.println("File path: "+f.getAbsolutePath());
// 终止后删除临时文件
f.deleteOnExit();
// 创建临时文件
f = File.createTempFile("tmp", null, new File("D:/"));
// 输出绝对路径
System.out.print("File path: "+f.getAbsolutePath());
// 终止后删除临时文件
f.deleteOnExit();
} catch(Exception e) {
// 如果有错误输出内容
e.printStackTrace();
}
}
}
java.io.IOException: 拒绝访问。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(Unknown Source)
at E7.Main1.main(Main1.java:34)
解决方案:右击计算机D盘,打开属性,属性—>安全---->编辑,然后把除完全控制的其他权限增加上,再运行发现还不行如下
最后点确定
java.io.IOException: 客户端没有所需的特权。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(Unknown Source)
at E7.Main1.main(Main1.java:34)
改34行代码 f = File.createTempFile("tmp", ".txt", new File("D:/"));
总结:
没有权限
1.更改磁盘权限
2.换个磁盘创建文件
3.换个路径
运行·结果·
File path: D:\tmp1762065882920994487.txt
File path: D:\tmp6571140473236847129.tmp