मैं जावा में एक अस्थायी फ़ाइल बनाने का एक सुरक्षित तरीका खोज रहा हूँ । सुरक्षित रूप से, मेरा मतलब निम्नलिखित है:
- संभावित दौड़ की शर्तों के तहत भी नाम अद्वितीय होना चाहिए (जैसे एक और थ्रेड एक ही समय में एक ही फ़ंक कहता है, या कोई अन्य प्रक्रिया इस कोड को एक साथ चलाता है)
- संभावित दौड़ शर्तों के तहत फ़ाइल निजी होनी चाहिए, (उदाहरण के लिए कोई अन्य उपयोगकर्ता उच्च दर पर फ़ाइल को चोदने की कोशिश करता है)
- मैं इसे फ़ाइल को हटाने के लिए कह सकता हूं, मेरे बिना एक जेनेरिक डिलीट करने के लिए, और गलत फ़ाइल को हटाने का जोखिम
- आदर्श रूप से, यह सुनिश्चित करना चाहिए कि फ़ाइल को हटा दिया जाए, भले ही मुझे मौका मिलने से पहले अपवाद फेंक दिया गया हो
- फ़ाइल को एक स्थान पर डिफ़ॉल्ट होना चाहिए (जैसे JVM निर्दिष्ट tmp dir, सिस्टम अस्थायी डीआईआर के लिए डिफ़ॉल्ट)
एक्सिट पर डिलीट फाइल को डिलीट नहीं करेगा, अगर vm एक अपवाद के साथ बाहर निकलता है।
—
जोहान्स
File f = File.createTempFile(prefix, extension)
। इसे टेंपर डायर में रखा जाएगा। और इसके साथf.deleteOnExit()
बाहर निकलने पर स्वचालित रूप से हटा दिया जाएगा।