2012-05-03 28 views
12

Serializable डिस्क पर ऑब्जेक्ट सहेजते समय कौन सा फ़ाइल एक्सटेंशन सबसे उपयुक्त होगा? http://www.file-extensions.org/ser-file-extensionएक सीरियलाइज्ड ऑब्जेक्ट के लिए फ़ाइल एक्सटेंशन

लेकिन, आप बहस कर सकते हैं कि यह है कि अन्य संघर्ष नहीं करता है थोड़ा अंतर क्या प्रत्यय आप का उपयोग करें ... प्रदान की है -

FileOutputStream fos = null; 
ObjectOutputStream out = null; 
try { 
    fos = new FileOutputStream(filename); 
    out = new ObjectOutputStream(fos); 
    out.writeObject(mySerializableObject); 
} catch (IOException ex) { 
    ex.printStackTrace(); 
} finally { 
    IOUtils.closeQuietly(out); 
} 
+1

मैं इस समय सोच रहा हूं लेकिन इस समय 100% – Edd

उत्तर

23

".ser" फ़ाइल प्रत्यय के लिए एक उचित विकल्प है आमतौर पर इस्तेमाल किया अनुप्रयोग प्रत्यय।

एक जावा धारावाहिक ऑब्जेक्ट फ़ाइल केवल जावा अनुप्रयोग द्वारा पढ़ी जा सकती है (सामान्य तरीके से) जिसमें उसके क्लासपाथ पर प्रासंगिक कक्षाएं होती हैं। एक आकार-फिट-सब ".ser" प्रत्यय कोई संकेत नहीं देता है कि वे कक्षाएं क्या हो सकती हैं और जहां एप्लिकेशन लॉन्च ढांचे को उन्हें ढूंढना चाहिए। तो आप डबल-क्लिक एप्लिकेशन लॉन्चिंग प्रदान करने के लिए एक विंडोज-स्टाइल फ़ाइल एसोसिएशन स्थापित करने में सक्षम नहीं होंगे।


वहाँ एक रास्ता मैं देख सकते हैं या सेवा फ़ाइल को संपादित कर सकते हैं ??

संभवतः, लेकिन बड़ी कठिनाई के साथ, और केवल कुछ शर्तों के तहत।

सामग्री उस सामग्री को अत्यधिक निर्भर करता है जो धारावाहिक था। अब यह निर्धारित करना संभव है कि उस वर्ग का नाम क्या है, और (कुछ मामलों में) धारावाहिक क्षेत्रों के नाम और प्रकार। हालांकि यदि कक्षा कस्टम सीरियलाइजेशन/बाहरीकरण का उपयोग करती है, तो प्रतिनिधित्व फ़ाइल में कोई सुराग नहीं होने के बावजूद बाइनरी डेटा का एक अपारदर्शी ब्लोब होगा। अपारदर्शी ब्लॉब समस्या काफी आम है क्योंकि जावा एसई क्लास लाइब्रेरी में कई महत्वपूर्ण वर्ग कस्टम क्रमबद्धता का उपयोग करते हैं ... दक्षता के लिए ... और इसलिए कई एप्लिकेशन कक्षाएं करते हैं।

अन्य संभावित दृष्टिकोण .ser फ़ाइल में उल्लिखित सभी वर्गों के लिए .class फ़ाइलों को ढूंढना, वस्तुओं को deserialize, और deserialised वस्तुओं के क्षेत्रों तक पहुंचने के लिए प्रतिबिंब का उपयोग करना है। आप उन्हें भी ट्विक कर सकते हैं और उन्हें फिर से शुरू कर सकते हैं। हालांकि, अगर आपके पास सभी .class फ़ाइलों का सही संस्करण नहीं है, तो यह एक गैर-स्टार्टर है।

+0

क्या कोई तरीका है कि मैं सेर फ़ाइल को देख या संपादित कर सकता हूं ?? – Winz

+1

@ user1042983 संक्षेप में, नहीं - यह जावा ऑब्जेक्ट्स की एक सूची है, और इसे केवल जावा एप्लिकेशन द्वारा प्रोग्रामेटिक रूप से संपादित किया जाना चाहिए। – Alex