简单日期格式不起作用创建临时文件

我正在创建新的特梅普文件,并希望使格式“yyyyMDd”,但它的工作直到创建临时文件。


private File createFile() throws IOException{

        String tempName = new SimpleDateFormat("yyyyMMdd").format(new Date());

        File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);

        Log.d("e",tempName);


        File image = File.createTempFile(

                tempName,

                ".png",

                storageDir


        );

        Log.d("e",image.getName());

        mCurrentPhotoPath = image.getAbsolutePath();

        return image;


    }

日志


D/e: 20190402

D/e: 201904021419980777854538831.png


浮云间
浏览 99回答 3
3回答

慕码人8056858

File.createTempFile允许您为创建的文件指定前缀和后缀,但不指定全名,因为它的名称中有一个随机部分。如果你想在临时目录中有一个具有该名称的文件,你需要使用这样的东西:File image = new File(        System.getProperty("java.io.tmpdir") ,         tempName +         ".png"    );

慕容708150

简单的答案,您无法更改使用 创建的文件的名称。它具有每个文件的默认唯一名称。createTempFile长答案,根据 https://docs.oracle.com/javase/7/docs/api/java/io/File.html#createTempFile(java.lang.String,%20java.lang.String,%20java.io.File) :在调用此方法之前,由返回的抽象路径名表示的文件不存在,并且此方法及其任何变体都不会在虚拟机的当前调用中再次返回相同的抽象路径名。

呼唤远方

似乎是方法本身的一部分。我正在查看文档,它说“一旦进行了这些调整,新文件的名称将通过连接前缀,五个或更多内部生成的字符和后缀来生成。它似乎在最后生成随机字符以保证唯一性。createTempFile我想你可以做的是将文件对象存储在你需要的地方,在那里你可以访问它,只需获取前6个字符,这应该是日期,或者你可以创建一个普通文件。也有可能,也许你可以在创建临时文件后重命名它,只使用前6个字符?不完全确定
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java