相同点:createNewFile()和createTempFile()都是用来创建文件。
不同点:
1.创建方式不同createNewFile()需要创建目录-file.getParentFile().mkdirs();然后再创建文件-file.createNewFile();createTempFile()调用File的静态方法-File.createTempFile(String prefix, String suffix)
2.目录不同,createNewFile()需要指定目录路径,createTempFile()的路径为App.getInstance().getApplicationContext().getCacheDir()目录下。
3.文件名称不同,createNewFile()需要指定文件名称,createTempFile()文件名称为指定前缀名+临时一串数字+指定后缀名。
createNewFile()
// 文件路径:/data/user/0/包名/cache/camera/20210302/1614669744032.txt
public static File createFile() {
File file = new File(App.getInstance().getApplicationContext().getCacheDir()
+ File.separator + "camera"
+ File.separator + new SimpleDateFormat("yyyyMMdd", Locale.CHINA).format(new Date(System.currentTimeMillis()))
+ File.separator + System.currentTimeMillis() + ".txt");
if (!file.exists()) {
try {
file.getParentFile().mkdirs();
file.createNewFile();
return file;
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
createTempFile()
// 文件路径:/data/user/0/包名/cache/temp5586373986259348895.txt
public static File createFile() {
File tempFile = null;
try {
tempFile = File.createTempFile("temp", ".txt");
} catch (IOException e) {
e.printStackTrace();
}
return tempFile;
网友评论