TempFile
Javaでの名前の最大長はどれくらいですか? これはMaximumFilesize
、作成する一時ディレクトリを指定するマシンまたはその他の Java ベースのマシンに依存しますか?
メソッドをいつ呼び出すdeleteOnExit()
か---しかし、JVMがダウンしたときに呼び出されるため、このメソッドの使用法は何ですか.しかし、本番ベースのサーバーでは24 * 7で実行されます.したがって、ファイルは継続的に作成され、メモリのためにファイルを作成するサーバー。
TempFile
Javaでの名前の最大長はどれくらいですか? これはMaximumFilesize
、作成する一時ディレクトリを指定するマシンまたはその他の Java ベースのマシンに依存しますか?
メソッドをいつ呼び出すdeleteOnExit()
か---しかし、JVMがダウンしたときに呼び出されるため、このメソッドの使用法は何ですか.しかし、本番ベースのサーバーでは24 * 7で実行されます.したがって、ファイルは継続的に作成され、メモリのためにファイルを作成するサーバー。
XX 秒より古い (変更された) 一時ファイルを自動クリーニングするには...
import java.io.File;
import java.io.IOException;
import java.util.HashSet;
public class FileAutoCleaner {
final static FileAutoCleaner singleton = new FileAutoCleaner();
final HashSet<File> bag = new HashSet<File>();
public static FileAutoCleaner getInstance() {
return singleton;
}
// This create the temp file and add to bag for checking
public synchronized File createTempFile(String prefix, String suffix) throws IOException {
File tmp = File.createTempFile(prefix, suffix);
tmp.deleteOnExit();
bag.add(tmp);
return tmp;
}
// Periodically call this function to clean old files
public synchronized void cleanOldFiles(final int secondsOld) {
long now = (System.currentTimeMillis() / 1000);
for (File f : bag) {
long expired = (f.lastModified() / 1000) + secondsOld;
if (now >= expired) {
System.out.println("Deleted file=" + f.getAbsolutePath());
f.delete();
bag.remove(f);
}
}
}
public static void main(String[] args) throws Exception {
FileAutoCleaner fac = FileAutoCleaner.getInstance();
System.out.println(System.currentTimeMillis() / 1000);
fac.createTempFile("deleteme", "tmp");
for (int i = 0; i < 5; i++) {
System.out.println(System.currentTimeMillis() / 1000);
// delete if older than 2 seconds
fac.cleanOldFiles(2);
Thread.sleep(1000);
}
}
}
Java での TempFile の名前の最大長はどのくらいですか。MaximumFilesize は、作成する一時ディレクトリまたはその他の Java ベースのマシンに依存していますか?
1775 static File generateFile(String prefix, String suffix, File dir) {
1776 long n = random.nextLong();
1777 if (n == Long.MIN_VALUE) {
1778 n = 0; // corner case
1779 } else {
1780 n = Math.abs(n);
1781 }
1782 return new File(dir, prefix + Long.toString(n) + suffix);
1783 }
long
そのため、ファイル名はプレフィックスサフィックス付きのランダムにすることができます
deleteOnExit() メソッドをいつ呼び出すか --- しかし、JVM がダウンしたときに呼び出されるため、このメソッドの用途は何ですか。しかし、本番ベースのサーバーでは 24*7 で実行されます
アプリケーションの存続のために作成する必要があるファイルがいくつかありますが、
たとえば、 Eclipse を起動すると、Eclipse が存在すると削除されるワークスペースをロックするために作成された .lock ファイルが表示されます。
String tmpDir = System.getProperty("java.io.tmpdir");
ファイル file=new File(tmpDir+"\"+fileName+".tmp");