2011-05-19 14 views
7

मैं फ़ाइलों के लिए अद्वितीय आईडी का उपयोग करना चाहता हूं। जावा में अद्वितीय आईडी उत्पन्न करने के लिए मैं सिस्टम समय का उपयोग कैसे कर सकता हूं?जावा में सिस्टम समय का उपयोग कर अद्वितीय फ़ाइल नाम?

+0

मैं यूयूआईडी का उपयोग नहीं करना चाहता हूं। System.currentTimeInMillis अद्वितीय होने की गारंटी है ?? – leon

उत्तर

2

आप System.currentTimeInMillis

या

java.util उपयोग कर सकते हैं। UUID.randomUUID()

+0

मैं यूयूआईडी का उपयोग नहीं करना चाहता हूं। System.currentTimeInMillis अद्वितीय होने की गारंटी है ?? – leon

+1

System.currentTimeInMillis -> "अंतर, मिलीसेकंड में मापा गया, वर्तमान समय और मध्यरात्रि के बीच, 1 जनवरी 1 9 70 यूटीसी।" समवर्ती सत्रों में विशिष्टता की गारंटी के लिए आप logInUserName को इसमें जोड़ सकते हैं। –

0

क्या इसे सिस्टम समय पर आधारित होना चाहिए? क्या आप सिर्फ यूयूआईडी का उपयोग नहीं कर सकते?

java.util.UUID.randomUUID(); 
4

UUID class आपको जो चाहिए वह है।

नमूना कार्यान्वयन:

public class RandomStringUUID { 

    public static void main(String[] args) { 
       UUID uuid = UUID.randomUUID(); 
       String randomUUIDString = uuid.toString(); 

       System.out.println("Random UUID String = " + randomUUIDString); 
       System.out.println("UUID version  = " + uuid.version()); 
       System.out.println("UUID variant  = " + uuid.variant()); 
      } 
     } 

आउटपुट:

Random UUID String = 7dc53df5-703e-49b3-8670-b1c468f47f1f 
UUID version  = 4 
UUID variant  = 2 
1

मैं File.createTempFile(String prefix, String suffix) का उपयोग करने की अनुशंसा करता हूं जो एक खाली फ़ाइल बनाता है जो फ़ाइल सिस्टम पर किसी और चीज़ के साथ टकराव नहीं करता है।

आप File.deleteOnExit का उपयोग सुनिश्चित करना है कि हटाए जाने पर जब कार्यक्रम बाहर निकलता है सकते हैं।

+0

हां। लेकिन वह विधि एक temp फ़ाइल "बनाता है", कि मेरे मामले में, की आवश्यकता नहीं है। – marcolopes

संबंधित मुद्दे