首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java File.createTempFile 調用錯誤:new File.createTempFile 導致 cannot resolve symbol

     編輯:程式設計綜合問答

錯誤代碼


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()、緩存目錄自動清理)。
  • 前綴至少 3 個字符,後綴建議帶點 (如 .jpg)。
  • Java 7+ 可用 Files.createTempFile() (NIO.2) 返回 Path。

NIO.2 寫法 (Java 7+)


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 基礎語法:靜態成員屬於類,不屬於實例。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved