Java 当我移动临时文件时,它会变得持久吗?

Java 当我移动临时文件时,它会变得持久吗?,java,android,file,persistence,temp,Java,Android,File,Persistence,Temp,我的问题很直截了当。当我在android中创建一个临时文件(使用)并将该文件移动到另一个目录(从应用程序存储的/cache到/files)时,该文件是否会持久化?还是有办法让它持久?或者我必须复制它并删除原始文件吗?您提供的createTempFile的变体需要指定文件的包含目录。如果该目录位于操作系统管理的临时文件存储中(例如类Unix系统中的/tmp),则必须将临时层次结构移动(复制)到“常规”目录位置。但是,如果指定的目录已经在这样的位置之外,那么您就可以了 File类提供了一个“OS管理

我的问题很直截了当。当我在android中创建一个临时文件(使用)并将该文件移动到另一个目录(从应用程序存储的/cache到/files)时,该文件是否会持久化?还是有办法让它持久?或者我必须复制它并删除原始文件吗?

您提供的
createTempFile
的变体需要指定文件的包含目录。如果该目录位于操作系统管理的临时文件存储中(例如类Unix系统中的
/tmp
),则必须将临时层次结构移动(复制)到“常规”目录位置。但是,如果指定的目录已经在这样的位置之外,那么您就可以了

File
类提供了一个“OS管理的临时文件存储”的概念,这样代码就不需要知道(或找出)合适的OS临时目录(Java运行时会为您这样做)。这些文件是在操作系统管理的临时目录中创建的,该目录需要复制才能成为永久目录

还认为,临时文件的“临时性”通常是在系统重新启动时无法生存(通常,它们甚至无法在关机中幸存)。因此,临时文件在操作系统生命周期中已经是永久的;如果您需要在重启期间保持永久性,那么您可以首先在一个持久位置创建临时文件,或者确保将临时文件移动(复制)到该位置


但是,我想知道,它们首先以什么方式是“临时”文件?

我遇到了一个问题,无法在活动之间共享位图,因此我将它们(以及其他数据)转储到一个文件中。现在对于第二个活动,这个文件是临时的,因为它只是将数据传递给第一个活动。但是第一个活动必须将这个文件存储在其他地方。问题是第二个活动不知道把它放在哪里,所以它将它存储在一个临时文件中,然后第一个活动决定把它放在哪里。