File mediaFile = new File.createTempFile("dsadsa", ".jpg"); // 錯誤
錯誤信息:cannot resolve symbol createTempFile
createTempFile 是 File 類的 **靜態方法**,不能通過 new File() 實例調用。
// 正確:直接用類名調用靜態方法
File mediaFile = File.createTempFile("prefix", ".jpg");
// 或指定目錄
File mediaFile = File.createTempFile("prefix", ".jpg", directory);
public File createTempImageFile() throws IOException {
// 創建臨時文件,前綴 "IMG_",後綴 ".jpg",默認系統臨時目錄
File tempFile = File.createTempFile("IMG_", ".jpg");
return tempFile;
}
// 或指定保存目錄 (如應用私有緩存目錄)
public File createTempImageFileInCache(Context context) throws IOException {
File cacheDir = context.getCacheDir(); // 或 getExternalCacheDir()
File tempFile = File.createTempFile("IMG_", ".jpg", cacheDir);
return tempFile;
}
createTempFile 返回**已創建的空文件**,文件名格式:prefix + 隨機長字符串 + suffix (如 IMG_1a2b3c4d.jpg)。deleteOnExit()、緩存目錄自動清理)。.jpg)。Files.createTempFile() (NIO.2) 返回 Path。
Path tempPath = Files.createTempFile("IMG_", ".jpg"); // 默認臨時目錄
// 或指定目錄
Path tempPath = Files.createTempFile(cacheDir.toPath(), "IMG_", ".jpg");
File tempFile = tempPath.toFile();
靜態方法調用類名,不調用實例。File.createTempFile(...) 而非 new File().createTempFile(...) 或 new File.createTempFile(...)。這是 Java 基礎語法:靜態成員屬於類,不屬於實例。